Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wstawić listę C# do bazy danych za pomocą Dapper.NET?

Musiałbyś to zrobić trochę inaczej. W Dapper dopasowuje się do konwencji AKA właściwości lub nazw pól, które są identyczne z parametrami SQL. Zakładając więc, że masz MyObject :

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

    public string B { get; set; }
}

I zakładając processList = List<MyObject> , Chciałbyś to zrobić

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

Zwróć uwagę, że MyObject nazwy właściwości A i B pasują do nazw parametrów SQL @A i @B.

Jeśli nie chcesz zmieniać nazw obiektów, możesz użyć typów anonimowych do mapowania zamiast typów konkretnych:

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

EDYTUJ:

Zgodnie z komentarzem Marca Gravella, możesz również poprosić Dappera o wykonanie pętli za Ciebie:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykłady konwersji „data” na „datetime2” w SQL Server (T-SQL)

  2. Jak ORIGINAL_DB_NAME() działa w SQL Server

  3. datetime vs datetime2 w SQL Server:jaka jest różnica?

  4. Instalacja i konfiguracja przesyłania dzienników serwera SQL i odzyskiwania po awarii -3

  5. Jak zapobiegać atakom typu SQL Injection przez bezpieczne?