Dovresti farlo in modo leggermente diverso. In Dapper, corrisponde alla convenzione AKA proprietà o nomi di campo identici ai parametri SQL. Quindi, supponendo che tu abbia un MyObject
:
public class MyObject
{
public int A { get; set; }
public string B { get; set; }
}
E supponendo processList = List<MyObject>
, Vorresti farlo
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, item);
}
Nota che il MyObject
i nomi delle proprietà A e B corrispondono ai nomi dei parametri SQL @A e @B.
Se non vuoi rinominare gli oggetti, puoi utilizzare i tipi anonimi per eseguire le mappature invece dei tipi concreti:
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, new { A = item.A, B = item.B });
}
MODIFICA:
Secondo il commento di Marc Gravell, puoi anche chiedere a Dapper di fare il giro per te:
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, processList);