Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

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

Il faudrait faire un peu différemment. Dans Dapper, il correspond à la convention AKA, les noms de propriété ou de champ étant identiques aux paramètres SQL. Donc, en supposant que vous aviez un MyObject :

public class MyObject
{
    public int A { get; set; }

    public string B { get; set; }
}

Et en supposant que processList = List<MyObject> , vous voudriez faire ceci

foreach (var item in processList)
{
    string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";        
    connection.Execute(processQuery, item);
}

Notez que le MyObject les noms de propriété A et B correspondent aux noms de paramètre SQL @A et @B.

Si vous ne souhaitez pas renommer les objets, vous pouvez utiliser des types anonymes pour effectuer les mappages au lieu de types concrets :

foreach (var item in processList)
{
    string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";        
    connection.Execute(processQuery, new { A = item.A, B = item.B });
}

MODIF :

Selon le commentaire de Marc Gravell, vous pouvez également demander à Dapper de faire la boucle pour vous :

string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@A, @B)";        
connection.Execute(processQuery, processList);