Estou interessado em usar o Dapper - mas, pelo que sei, ele suporta apenas a Consulta e Execução. Não vejo que o Dapper inclua uma maneira de inserir e atualizar objetos.
Dado que nosso projeto (a maioria dos projetos?) Precisa fazer inserções e atualizações, qual é a melhor prática para inserir e atualizar ao lado do dapper?
De preferência, não teríamos que recorrer ao método ADO.NET de criação de parâmetros, etc.
A melhor resposta que posso encontrar neste momento é usar o LinqToSQL para inserções e atualizações. Existe uma resposta melhor?
Respostas:
Estamos pensando em criar alguns auxiliares, ainda decidindo sobre APIs e se isso é essencial ou não. Consulte: https://code.google.com/archive/p/dapper-dot-net/issues/6 para obter progresso.
Enquanto isso, você pode fazer o seguinte
etcetera
Veja também no meu blog: Esse problema irritante do INSERT
Atualizar
Conforme apontado nos comentários, agora existem várias extensões disponíveis no projeto Dapper.Contrib na forma dos seguintes
IDbConnection
métodos de extensão:fonte
set
comocnn.Execute("update Table SET val = @val where Id = @id", new {val, id = 1});
ou isso é específico dapper? Eu sou novo para dapper e estava procurando um exemplo de atualização :)var updateCat = connection.Execute("UPDATE tCategories SET sCategory = @val WHERE iCategoryID = @id", new { val = "dapper test", id = 23 });
e funcionou. Sem o uso de SET, recebo um erro de sintaxe SQLException perto de sCategory.Executar operações CRUD usando o Dapper é uma tarefa fácil. Mencionei os exemplos abaixo que devem ajudá-lo em operações CRUD.
Código para C RUD:
Método 1: Este método é usado quando você está inserindo valores de diferentes entidades.
Método 2: Este método é usado quando as propriedades da sua entidade têm os mesmos nomes que as colunas SQL. Portanto, Dapper sendo um ORM mapeia as propriedades da entidade com as colunas SQL correspondentes.
Código para C R UD:
Código para CR U D:
Código para CRU D :
fonte
você pode fazer isso da seguinte maneira:
fonte
using-statement
para que a conexão seja fechada mesmo em caso de exceção.sqlConnection.Execute(sqlQuery, customerEntity);
sqlConnection.Execute(sqlQuery, customerEntity);
Usando Dapper.Contrib é tão simples como isto:
Inserir lista:
Inserir simples:
Atualizar lista:
Atualização única:
Fonte: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
fonte
conn.Update(yourClass)
se algumas propriedades são nulos , em seguida, atualizar os campos para NULL ? Não está funcionando. Atualize o campo para NULL .Not partials updates
Você também pode usar o dapper com um procedimento armazenado e uma maneira genérica pela qual tudo é facilmente gerenciado.
Defina sua conexão:
Crie uma interface para definir os métodos Dapper dos quais você realmente precisa:
Implemente a interface:
Agora você pode ligar do modelo conforme sua necessidade:
Você também pode passar parâmetros:
Agora ligue de seus controladores:
Espero que isso impeça a repetição do código e forneça segurança;
fonte
Você pode tentar isso:
fonte