Das müsstest du etwas anders machen. In Dapper stimmt es nach der Konvention überein, dass AKA-Eigenschaften oder Feldnamen mit SQL-Parametern identisch sind. Angenommen, Sie hätten ein MyObject
:
public class MyObject
{
public int A { get; set; }
public string B { get; set; }
}
Und unter der Annahme processList = List<MyObject>
, Sie möchten dies tun
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, item);
}
Beachten Sie, dass die Datei MyObject
Die Eigenschaftsnamen A und B stimmen mit den SQL-Parameternamen @A und @B überein.
Wenn Sie Objekte nicht umbenennen möchten, können Sie statt konkreter Typen anonyme Typen verwenden, um die Zuordnungen vorzunehmen:
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, new { A = item.A, B = item.B });
}
BEARBEITEN:
Laut Marc Gravells Kommentar können Sie auch Dapper die Schleife für Sie ausführen lassen:
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, processList);