sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man infogar en C#-lista i databasen med Dapper.NET

Du måste göra det lite annorlunda. I Dapper matchar den enligt konventionell AKA egenskaps- eller fältnamn som är identiska med SQL-parametrar. Så, förutsatt att du hade ett MyObject :

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

    public string B { get; set; }
}

Och förutsatt att processList = List<MyObject> , Du skulle vilja göra det här

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

Observera att MyObject egenskapsnamnen A och B matchar SQL-parameternamnen @A och @B.

Om du inte vill byta namn på objekt kan du använda anonyma typer för att göra mappningarna istället för konkreta typer:

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

EDIT:

Enligt Marc Gravells kommentar kan du också låta Dapper göra loopen åt dig:

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


  1. Online kontra offline säkerhetskopiering

  2. Hur ansluter man en C# Windows Mobile 6.5-app till en Postgres-databas?

  3. Hur infogar jag en byte[] i en SQL Server VARBINARY-kolumn

  4. Skillnad i hanteringen av utrymmena mellan Oracle och SQL Server