Dapper.NET
Bulk inzetstukken
Zoeken…
Opmerkingen
De WriteToServer
en WriteToServerAsync
hebben overbelastingen die IDataReader (te zien in de voorbeelden), DataTable en DataRow-arrays ( DataRow[]
) DataRow[]
als de bron van de gegevens voor de DataRow[]
.
Async Bulk Copy
Dit voorbeeld gebruikt een ToDataReader
methode die hier wordt beschreven Een generieke lijst DataReader voor SqlBulkCopy maken .
Dit kan ook worden gedaan met behulp van niet-asynchrone methoden.
public class Widget
{
public int WidgetId {get;set;}
public string Name {get;set;}
public int Quantity {get;set;}
}
public async Task AddWidgets(IEnumerable<Widget> widgets)
{
using(var conn = new SqlConnection("{connection string}")) {
await conn.OpenAsync();
using(var bulkCopy = new SqlBulkCopy(conn)) {
bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
bulkCopy.BatchSize = 500;
bulkCopy.DestinationTableName = "Widgets";
bulkCopy.EnableStreaming = true;
using(var dataReader = widgets.ToDataReader())
{
await bulkCopy.WriteToServerAsync(dataReader);
}
}
}
}
Bulk kopie
Dit voorbeeld gebruikt een ToDataReader
methode die hier wordt beschreven Een generieke lijst DataReader voor SqlBulkCopy maken .
Dit kan ook worden gedaan met behulp van asynchrone methoden.
public class Widget
{
public int WidgetId {get;set;}
public string Name {get;set;}
public int Quantity {get;set;}
}
public void AddWidgets(IEnumerable<Widget> widgets)
{
using(var conn = new SqlConnection("{connection string}")) {
conn.Open();
using(var bulkCopy = new SqlBulkCopy(conn)) {
bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
bulkCopy.BatchSize = 500;
bulkCopy.DestinationTableName = "Widgets";
bulkCopy.EnableStreaming = true;
using(var dataReader = widgets.ToDataReader())
{
bulkCopy.WriteToServer(dataReader);
}
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow