使用 Dapper 执行插入语句

Executing Insert Statement with Dapper

我正在尝试使用@MarcGravell 在下面post 和评论

中解释的方法

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。

在您的第二个示例中,您传递了参数 new {cusipSedolsParameter},它是一个匿名类型对象,具有一个名为 cusipSedolsParameter 的成员。

相反,您只想传递您的列表。您的通话应如下所示:

con.Execute(sql2, cusipSedolsParameter);

然后 Dapper 将枚举您的列表并对每个条目执行查询,将查询参数与条目类型的属性进行匹配。