Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie mit Dapper.NET eine C#-Liste in die Datenbank ein

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);