Exécution d'une déclaration d'insertion avec Dapper

c# dapper insert-into

Question

J'essaie d'utiliser la méthode expliquée par @MarcGravell dans le post ci-dessous et les commentaires

Comment insérer une liste C # dans la base de données à l'aide de Dapper.NET

J'essaye de partir

        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});

        }

avec

       var cusipSedolsParameter = new List<CusipSedols>();

       public class CusipSedols
       {
           public string CusipSedol { get; set; }
       }

mais j'obtiens l'erreur que je dois déclarer @CusipSedol s'il a plus d'un CusipSedol.

Réponse acceptée

Dans votre deuxième exemple, vous transmettez l'argument new {cusipSedolsParameter} qui est un objet de type anonyme avec un seul membre nommé cusipSedolsParameter .

Au lieu de cela, vous voulez simplement passer votre liste. Votre appel devrait ressembler à:

con.Execute(sql2, cusipSedolsParameter);

Ensuite, Dapper énumérera votre liste et effectuera votre requête pour chaque entrée, en faisant correspondre les paramètres de requête aux propriétés du type de l'entrée.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi