sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo insertar una lista de C# en la base de datos usando Dapper.NET

Tendrías que hacerlo un poco diferente. En Dapper, coincide con la convención AKA propiedad o nombres de campo que son idénticos a los parámetros SQL. Entonces, asumiendo que tienes un MyObject :

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

    public string B { get; set; }
}

Y asumiendo processList = List<MyObject> , Te gustaría hacer esto

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

Tenga en cuenta que MyObject los nombres de las propiedades A y B coinciden con los nombres de los parámetros SQL @A y @B.

Si no desea cambiar el nombre de los objetos, puede usar tipos anónimos para hacer las asignaciones en lugar de tipos concretos:

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

EDITAR:

Según el comentario de Marc Gravell, también puedes hacer que Dapper haga el ciclo por ti:

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