Dommel.Bulk
1.0.0-beta
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
<PackageReference Include="Dommel.Bulk" Version="1.0.0-beta" />
paket add Dommel.Bulk --version 1.0.0-beta
#r "nuget: Dommel.Bulk, 1.0.0-beta"
// 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 | Versions 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. |
.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. |
-
.NETStandard 2.0
- Dommel (>= 3.0.0)
- Microsoft.Bcl.HashCode (>= 1.1.1)
-
net6.0
- Dommel (>= 3.0.0)
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 | 162 | 5/6/2022 |
1.0.0 | 401 | 3/24/2022 |
1.0.0-beta | 85 | 3/19/2022 |