我试图在下面的帖子和评论
中使用@MarcGravell解释的方法How to insert a C# List to database using Dapper.NET
我想从
开始 string sql2 = string.Format(@"INSERT INTO #cusipSedolList (cusipSedol) values (@A)");
IDbConnection con = new SqlConnection(_connectionString);
using (con)
{
con.Open();
foreach (var cusipSedol in cusipSedolsParameter)
{
con.Execute(sql2, new { A = cusipSedol.CusipSedol });
}
}
到
string sql2 = string.Format(@"INSERT INTO #cusipSedolList (cusipSedol) values (@CusipSedol)");
IDbConnection con = new SqlConnection(_connectionString);
using (con)
{
con.Open();
con.Execute(sql2, new {cusipSedolsParameter});
}
与
var cusipSedolsParameter = new List<CusipSedols>();
public class CusipSedols
{
public string CusipSedol { get; set; }
}
但我收到的错误是,如果它有多个CusipSedol,我必须声明@CusipSedol。
答案 0 :(得分:2)
在第二个示例中,传递参数new {cusipSedolsParameter}
,它是一个匿名类型对象,其中包含一个名为cusipSedolsParameter
的成员。
相反,您只想传递清单。你的电话应该是这样的:
con.Execute(sql2, cusipSedolsParameter);
然后Dapper会枚举您的列表并对每个条目执行查询,并根据条目类型的属性匹配查询参数。