Je zou het een beetje anders moeten doen. In Dapper komt het overeen met conventie AKA-eigenschap- of veldnamen die identiek zijn aan SQL-parameters. Dus, ervan uitgaande dat u een MyObject
. had :
public class MyObject
{
public int A { get; set; }
public string B { get; set; }
}
En ervan uitgaande dat processList = List<MyObject>
, Je zou dit willen doen
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, item);
}
Merk op dat de MyObject
eigenschapnamen A en B komen overeen met de SQL-parameternamen @A en @B.
Als u de naam van objecten niet wilt wijzigen, kunt u anonieme typen gebruiken om de toewijzingen uit te voeren in plaats van concrete typen:
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, new { A = item.A, B = item.B });
}
BEWERKEN:
Volgens de opmerking van Marc Gravell kun je Dapper ook de loop voor je laten doen:
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, processList);