CSharp · Console
// Dapper Plus
// Doc: https://dapper-plus.net/bulk-insert
// @nuget: Dapper -Version 1.60.6
// @nuget: Z.Dapper.Plus
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using Dapper;
using Z.Dapper.Plus;
public class Program
{
public static void Main()
{
CreateDatabase();
DapperPlusManager.Entity<Order>().Table("Orders")
.Identity(x => x.OrderID);
var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer());
var orders = GenerateOrders(10);
// Easy to use
connection.BulkInsert(orders);
// Easy to customize
connection.UseBulkOptions(options => options.InsertIfNotExists = true)
.BulkInsert(orders);
FiddleHelper.WriteTable("Orders:", connection.Query<Order>("SELECT * FROM Orders"));
}
public class Order
{
public int OrderID { get; set; }
public string Number { get; set; }
public decimal TotalPrice { get; set; }
public int TotalQuantity { get; set; }
}
public static List<Order> GenerateOrders(int count)
{
var orders = new List<Order>();
for(int i = 0; i < count; i++)
{
orders.Add(new Order() { Number = "Order_" + i, TotalPrice = 1 + i * 1.1m, TotalQuantity = 1 + i });
}
return orders;
}
public static void CreateDatabase()
{
using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()))
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = @"
CREATE TABLE [Orders]
(
[OrderID] [INT] IDENTITY(1,1) NOT NULL,
[Number] [VARCHAR](20) NULL,
[TotalPrice] [Money] NULL,
[TotalQuantity] [int] NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] ASC
)
) ";
command.ExecuteNonQuery();
}
}
}
}