Ще трябва да го направите малко по-различно. В Dapper той съвпада по конвенция, AKA, имената на свойства или полета са идентични с SQL параметрите. Така че, ако приемем, че имате MyObject
:
public class MyObject
{
public int A { get; set; }
public string B { get; set; }
}
И ако приемем processList = List<MyObject>
, Вие бихте искали да направите това
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, item);
}
Имайте предвид, че MyObject
имената на свойства A и B съответстват на имената на SQL параметри @A и @B.
Ако не искате да преименувате обекти, можете да използвате анонимни типове за извършване на съпоставянията вместо конкретни типове:
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, new { A = item.A, B = item.B });
}
РЕДАКТИРАНЕ:
Според коментара на Marc Gravell, можете също да накарате Dapper да направи цикъла вместо вас:
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, processList);