Benötigen Dapper Inserts / Updates Inline-SQL? Ich habe einfach nach Dapper-Implementierungsbeispielen gegoogelt und es scheint, als ob alle Beispiele, die ich gefunden habe, Inline-SQL enthalten. Können Sie mich auf irgendwelche Dapper Einfüge- / Aktualisierungsbeispiele verweisen, die kein Inline-SQL verwenden? Oder ist Inline SQL für Dapper Einfügungen / Updates erforderlich?
Wir suchen nach ein paar Helfern, die immer noch über APIs entscheiden und ob das im Kern geht oder nicht. Siehe: https://code.google.com/archive/p/dapper-dot-net/issues/6 für den Fortschritt.
In der Zwischenzeit können Sie Folgendes tun
val = "my value";
cnn.Execute("insert into Table(val) values (@val)", new {val});
cnn.Execute("update Table set val = @val where Id = @id", new {val, id = 1});
und so weiter
Siehe auch meinen Blogbeitrag: Das nervige INSERT-Problem
Aktualisieren
Wie in den Kommentaren erwähnt, gibt es nun im Dapper.Contrib- Projekt mehrere Erweiterungen in Form dieser IDbConnection
Erweiterungsmethoden:
T Get<T>(id);
IEnumerable<T> GetAll<T>();
int Insert<T>(T obj);
int Insert<T>(Enumerable<T> list);
bool Update<T>(T obj);
bool Update<T>(Enumerable<T> list);
bool Delete<T>(T obj);
bool Delete<T>(Enumerable<T> list);
bool DeleteAll<T>();
Die Durchführung von CRUD-Operationen mit Dapper ist eine einfache Aufgabe. Ich habe die folgenden Beispiele erwähnt, die Ihnen bei CRUD-Operationen helfen sollten.
Code für C RUD:
Methode 1: Diese Methode wird verwendet, wenn Sie Werte von verschiedenen Entitäten einfügen.
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDbConnection"].ConnectionString))
{
string insertQuery = @"INSERT INTO [dbo].[Customer]([FirstName], [LastName], [State], [City], [IsActive], [CreatedOn]) VALUES (@FirstName, @LastName, @State, @City, @IsActive, @CreatedOn)";
var result = db.Execute(insertQuery, new
{
customerModel.FirstName,
customerModel.LastName,
StateModel.State,
CityModel.City,
isActive,
CreatedOn = DateTime.Now
});
}
Methode 2: Diese Methode wird verwendet, wenn Ihre Entitätseigenschaften dieselben Namen wie die SQL-Spalten haben. Dapper ist also ein ORM, der Entitätseigenschaften mit den übereinstimmenden SQL-Spalten abbildet.
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDbConnection"].ConnectionString))
{
string insertQuery = @"INSERT INTO [dbo].[Customer]([FirstName], [LastName], [State], [City], [IsActive], [CreatedOn]) VALUES (@FirstName, @LastName, @State, @City, @IsActive, @CreatedOn)";
var result = db.Execute(insertQuery, customerViewModel);
}
Code für C R UD:
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDbConnection"].ConnectionString))
{
string selectQuery = @"SELECT * FROM [dbo].[Customer] WHERE FirstName = @FirstName";
var result = db.Query(selectQuery, new
{
customerModel.FirstName
});
}
Code für CR U D:
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDbConnection"].ConnectionString))
{
string updateQuery = @"UPDATE [dbo].[Customer] SET IsActive = @IsActive WHERE FirstName = @FirstName AND LastName = @LastName";
var result = db.Execute(updateQuery, new
{
isActive,
customerModel.FirstName,
customerModel.LastName
});
}
Code für CRU D :
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDbConnection"].ConnectionString))
{
string deleteQuery = @"DELETE FROM [dbo].[Customer] WHERE FirstName = @FirstName AND LastName = @LastName";
var result = db.Execute(deleteQuery, new
{
customerModel.FirstName,
customerModel.LastName
});
}