Ich bin an der Verwendung von Dapper interessiert - aber soweit ich das beurteilen kann, werden nur Query and Execute unterstützt. Ich sehe nicht, dass Dapper eine Möglichkeit zum Einfügen und Aktualisieren von Objekten enthält.
Was ist angesichts der Tatsache, dass unser Projekt (die meisten Projekte?) Einfügungen und Aktualisierungen durchführen muss, die beste Vorgehensweise, um neben Dapper Einfügungen und Aktualisierungen durchzuführen?
Vorzugsweise müssten wir nicht auf die ADO.NET-Methode zur Parametererstellung usw. zurückgreifen.
Die beste Antwort, die ich an dieser Stelle finden kann, ist die Verwendung von LinqToSQL für Einfügungen und Aktualisierungen. Gibt es eine bessere Antwort?
Antworten:
Wir versuchen, ein paar Helfer aufzubauen, entscheiden uns immer noch für APIs und ob dies im Kern liegt oder nicht. Weitere Informationen finden Sie unter: https://code.google.com/archive/p/dapper-dot-net/issues/6 .
In der Zwischenzeit können Sie Folgendes tun
und so weiter
Siehe auch meinen Blog-Beitrag: Das nervige INSERT-Problem
Aktualisieren
Wie in den Kommentaren erwähnt, sind im Dapper.Contrib- Projekt jetzt mehrere Erweiterungen in Form dieser
IDbConnection
Erweiterungsmethoden verfügbar :quelle
set
als enthalten sollcnn.Execute("update Table SET val = @val where Id = @id", new {val, id = 1});
oder ob dies adrett spezifisch ist. Ich bin neu bei dapper und habe nach einem Update-Beispiel gesucht :)var updateCat = connection.Execute("UPDATE tCategories SET sCategory = @val WHERE iCategoryID = @id", new { val = "dapper test", id = 23 });
und es hat funktioniert. Ohne die Verwendung von SET erhalte ich einen SQLException-Syntaxfehler in der Nähe von sCategory.Das Ausführen von CRUD-Operationen mit Dapper ist eine einfache Aufgabe. Ich habe die folgenden Beispiele erwähnt, die Ihnen bei CRUD-Operationen helfen sollen.
Code für C RUD:
Methode 1: Diese Methode wird verwendet, wenn Sie Werte aus verschiedenen Entitäten einfügen.
Methode 2: Diese Methode wird verwendet, wenn Ihre Entitätseigenschaften dieselben Namen wie die SQL-Spalten haben. Dapper als ORM ordnet Entitätseigenschaften den übereinstimmenden SQL-Spalten zu.
Code für C R UD:
Code für CR U D:
Code für CRU D :
quelle
Sie können es so machen:
quelle
using-statement
damit die Verbindung auch im Ausnahmefall geschlossen wird.sqlConnection.Execute(sqlQuery, customerEntity);
sqlConnection.Execute(sqlQuery, customerEntity);
Mit Dapper.Contrib ist es so einfach:
Liste einfügen:
Single einfügen:
Aktualisierungsliste:
Update Single:
Quelle: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
quelle
conn.Update(yourClass)
wenn einige Eigenschaften sind null , dann Aktualisieren Sie die Felder auf NULL ? Funktioniert nicht. Aktualisieren Sie das Feld auf NULL .Not partials updates
Sie können dapper auch mit einer gespeicherten Prozedur und einer generischen Methode verwenden, mit der alles leicht verwaltet werden kann.
Definieren Sie Ihre Verbindung:
Erstellen Sie eine Schnittstelle, um die Dapper-Methoden zu definieren, die Sie tatsächlich benötigen:
Implementieren Sie die Schnittstelle:
Sie können jetzt nach Bedarf vom Modell aus anrufen:
Sie können auch Parameter übergeben:
Rufen Sie jetzt von Ihren Controllern aus:
Ich hoffe, es verhindert die Wiederholung Ihres Codes und bietet Sicherheit.
quelle
Sie können dies versuchen:
quelle