Estoy interesado en usar Dapper, pero por lo que puedo decir, solo admite Query and Execute. No veo que Dapper incluya una forma de Insertar y Actualizar objetos.
Dado que nuestro proyecto (¿la mayoría de los proyectos?) Necesita hacer inserciones y actualizaciones, ¿cuál es la mejor práctica para hacer Inserciones y Actualizaciones junto con dapper?
Preferiblemente no tendríamos que recurrir al método ADO.NET de construcción de parámetros, etc.
La mejor respuesta que puedo encontrar en este momento es usar LinqToSQL para inserciones y actualizaciones. ¿Hay una mejor respuesta?
Respuestas:
Estamos buscando construir algunos ayudantes, todavía decidimos sobre las API y si esto va en el núcleo o no. Consulte: https://code.google.com/archive/p/dapper-dot-net/issues/6 para ver el progreso.
Mientras tanto, puedes hacer lo siguiente
etcétera
Ver también mi blog: ese molesto problema de INSERT
Actualizar
Como se señaló en los comentarios, ahora hay varias extensiones disponibles en el proyecto Dapper.Contrib en forma de estos
IDbConnection
métodos de extensión:fuente
set
comocnn.Execute("update Table SET val = @val where Id = @id", new {val, id = 1});
o es específica. Soy nuevo en Dapper y estaba buscando un ejemplo de actualización :)var updateCat = connection.Execute("UPDATE tCategories SET sCategory = @val WHERE iCategoryID = @id", new { val = "dapper test", id = 23 });
y funcionó. Sin el uso de SET obtengo un error de sintaxis SQLException cerca de sCategory.Realizar operaciones CRUD con Dapper es una tarea fácil. He mencionado los siguientes ejemplos que deberían ayudarlo en las operaciones CRUD.
Código para C RUD:
Método n. ° 1: este método se utiliza cuando inserta valores de diferentes entidades.
Método # 2: Este método se usa cuando las propiedades de su entidad tienen los mismos nombres que las columnas SQL. Entonces, Dapper es un ORM que asigna propiedades de entidad con las columnas SQL coincidentes.
Código para C R UD:
Código para CR U D:
Código para CRU D :
fuente
puedes hacerlo de esta manera:
fuente
using-statement
para que la conexión se cierre incluso en caso de una excepción.sqlConnection.Execute(sqlQuery, customerEntity);
sqlConnection.Execute(sqlQuery, customerEntity);
Usando Dapper.Contrib es tan simple como esto:
Insertar lista:
Insertar single:
Lista de actualizacion:
Actualizar solo:
Fuente: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
fuente
conn.Update(yourClass)
caso de algunas propiedades son nulos , a continuación, actualizar los campos en NULL ? No funciona. Actualizar campo a NULL .Not partials updates
También puede usar apuesto con un procedimiento almacenado y una forma genérica por la cual todo es fácilmente manejable.
Define tu conexión:
Cree una interfaz para definir los métodos Dapper que realmente necesita:
Implemente la interfaz:
Ahora puede llamar desde el modelo según lo necesite:
También puede pasar parámetros también:
Ahora llame desde sus controladores:
Espero que evite la repetición de su código y brinde seguridad;
fuente
Puedes probar esto:
fuente