Dommel.Bulk 1.0.0-beta

This is a prerelease version of Dommel.Bulk.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Dommel.Bulk --version 1.0.0-beta
NuGet\Install-Package Dommel.Bulk -Version 1.0.0-beta
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dommel.Bulk" Version="1.0.0-beta" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Dommel.Bulk --version 1.0.0-beta
#r "nuget: Dommel.Bulk, 1.0.0-beta"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Dommel.Bulk as a Cake Addin
#addin nuget:?package=Dommel.Bulk&version=1.0.0-beta&prerelease

// Install Dommel.Bulk as a Cake Tool
#tool nuget:?package=Dommel.Bulk&version=1.0.0-beta&prerelease

Dommel.Bulk

High performance insert data into database

Dommel.Bulk provides a convenient API for bulk insert operations using extension methods on the IDbConnection interface. The SQL queries are generated based on your POCO entities. Dommel.Bulk translates you entities to SQL expressions. Dapper is used for query execution and object mapping. Dommel is used for table and column names conventions

Installing Dommel

Dommel.Bulk is available on NuGet.

Install using the .NET CLI:

dotnet add package Dommel.Bulk

Install using the NuGet Package Manager:

Install-Package Dommel.Bulk

Using Dommel.Bulk

Bulk insert using type mappers

var products = await connection.BulkInsertAsync<Product>(products);

Generate simple SQL expression using database specific type mappers. Supports MySql database. Has high performance.

Bulk insert using SQL parameters

int insertedCount = await connection.BulkInsertParametersAsync<Product>(products);

Use SQL parameters for insert values. Support for all databases. Has middle performance.

Type mappers

Support CLR types: bool, byte, char, double, float, int, long, sbyte, short, uint, ulong, ushort, decimal, DateTime, DateTimeOffset, Guid, string, TimeSpan, DateOnly, TimeOnly, ArraySegment<byte>, byte[], enum types and nullable types

Async and non-async

All Dommel.Bulk methods have async and non-async variants, such as as BulkInsert & BulkInsertAsync, BulkInsertParameters & BulkInsertParametersAsync.

Extensibility

ITypeMapper

Implement this interface if you want to customize the mapping types to SQL query

public class JsonTypeMapper : ITypeMapper
{
    public LambdaExpression GetExpression()
    {
        // Map JSON type to SQL string.
        return (Expression<Func<JObject, string>>)x => $"'{x.ToString().Escape()}'";
    }
}

Use the AddTypeMapper() method to register the custom implementation:

AddTypeMapper(typeof(JObject), new JsonTypeMapper());

or

AddTypeMapper(typeof(JObject), new GenericTypeMapper<JObject>(x => $"'{x.ToString().Escape()}'"));
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0-beta 267 5/6/2022
1.0.0 532 3/24/2022
1.0.0-beta 128 3/19/2022