¿Cómo hago que Dapper Dommel inserte una clave principal generada por la aplicación?

dapper

Pregunta

Supongamos que mi entidad es

public class AppUser
{
    string Id { get; set; }
    string Name { get; set; }
}

Parece que, de forma predeterminada, Dapper Dommel no inserta el campo Id. Generaría SQL muy cerca de esto:

insert into AppUser (Name) values ("Dapper") select cast(scope_identity() as int)

Este SQL se genera utilizando la función Dapper Dommel Insert así:

using (var connection = new System.Data.SqlClient.SqlConnection(ConnectionString))
{
    connection.Open();
    connection.Insert<AppUser>(new User { Id = "someGuid", Name = "Dapper" });
}

Me gustaría que inserte la columna Id para la que proporcioné un valor y que tampoco realice la consulta select cast (scope_identity () as int). Es decir, me gustaría algo como esto

insert into AppUser (Id, Name) values ("someGuid", "Dapper")

Parece que no puedo encontrar esto en la documentación. ¿Alguien sabe como lograr esto?

Respuesta popular

No estoy familiarizado con Dommel, pero puedes usar. Ejecutar:

    _dbConnection.Execute(@"insert into AppUser (Id, Name) 
                            values (@Id, @Name)", new {Id = 1, Name = "Foo"});


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué