Bạn phải làm khác đi một chút. Trong Dapper, nó khớp trên thuộc tính AKA quy ước hoặc tên trường giống với các tham số SQL. Vì vậy, giả sử bạn có MyObject
:
public class MyObject
{
public int A { get; set; }
public string B { get; set; }
}
Và giả sử processList = List<MyObject>
, Bạn muốn làm điều này
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, item);
}
Lưu ý rằng MyObject
tên thuộc tính A và B khớp với tên tham số SQL @A và @B.
Nếu bạn không muốn đổi tên các đối tượng, bạn có thể sử dụng các kiểu ẩn danh để thực hiện ánh xạ thay vì các kiểu cụ thể:
foreach (var item in processList)
{
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, new { A = item.A, B = item.B });
}
CHỈNH SỬA:
Theo nhận xét của Marc Gravell, bạn cũng có thể yêu cầu Dapper thực hiện vòng lặp cho bạn:
string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";
connection.Execute(processQuery, processList);