Dapper Orm eliminar excepción

c# dapper

Pregunta

Estoy tratando de eliminar con dapper orm. Pero estoy obteniendo esta excepción:

Al utilizar las API de mapeo múltiple, asegúrese de configurar el parametro splitOn si tiene claves distintas a Id.

Mi código se muestra a continuación:

public void DeleteRole(int ID)
    {
        using (var conn = new SqlConnection(connectionString))
        {
            conn.Open();
            conn.Query("DELETE FROM [Role] WHERE ID=@ID", new {ID=ID });
        }
    }

¿Alguna idea?

Respuesta aceptada

El problema aquí es que estás usando Query lugar de Execute . El método Query está tratando de encontrar una columna llamada Id para compilar el conjunto de resultados y no puede porque no es una consulta.


Respuesta popular

Especifique el tipo de devolución para la consulta (entero)

int rowsCount = conn.Query<int>("DELETE FROM [Role] WHERE ID = @ID", new { ID });

O use el método Execute, como señaló Michael

NOTA: No necesita abrir la conexión manualmente: Dapper lo abrirá por usted.

La consulta genérica de BTW funcionará para su pregunta original:

int id = conn.Query<int>(@"INSERT [Role] (Name, CreatedDate,UpdatedDate) 
                           VALUES (@Name, @CreatedDate,@UpdatedDate) 
                           SELECT CAST(scope_identity() as INT)", model).First();


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow