I’d like to insert a list of objects in an SQL table.
I know this question here but I don’t understand.
Here is my class :
public class MyObject { public int? ID { get; set; } public string ObjectType { get; set; } public string Content { get; set; } public string PreviewContent { get; set; } public static void SaveList(List<MyObject> lst) { using (DBConnection connection = new DBConnection()) { if (connection.Connection.State != ConnectionState.Open) connection.Connection.Open(); connection.Connection.Execute("INSERT INTO [MyObject] VALUE()",lst); } } }
I’d like to know how could I insert my list using Dapper, I don’t want to iterate on the list and save them one by one, I would like to insert all of them in one request.
Advertisement
Answer
You can insert these just as you would INSERT a single line:
public class MyObject { public int? ID { get; set; } public string ObjectType { get; set; } public string Content { get; set; } public string PreviewContent { get; set; } public static void SaveList(List<MyObject> lst) { using (DBConnection connection = new DBConnection()) { if (connection.Connection.State != ConnectionState.Open) connection.Connection.Open(); connection.Connection.Execute("INSERT INTO [MyObject] (Id, ObjectType, Content, PreviewContent) VALUES(@Id, @ObjectType, @Content, @PreviewContent)", lst); } } }
Dapper will look for class members named after your SQL parameters (@Id, @ObjectType, @Content, @PreviewContent) and bind them accordingly.