Npgsql.Bulk 0.9.0

Extension for Entity Framework Npgsql for Bulk Copy

Install-Package Npgsql.Bulk -Version 0.9.0
dotnet add package Npgsql.Bulk --version 0.9.0
<PackageReference Include="Npgsql.Bulk" Version="0.9.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Npgsql.Bulk --version 0.9.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Npgsql.Bulk, 0.9.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Npgsql.Bulk as a Cake Addin
#addin nuget:?package=Npgsql.Bulk&version=0.9.0

// Install Npgsql.Bulk as a Cake Tool
#tool nuget:?package=Npgsql.Bulk&version=0.9.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Npgsql.Bulk

Helper for performing COPY (bulk insert and update) operation easily, using Entity Framework + Npgsql.

.Net 4.5, Standard 2.0 are supported.

var uploader = new NpgsqlBulkUploader(context);
var data = GetALotOfData();

// To create a lot of objects
uploader.Insert(data);

// To update a lot of objects
uploader.Update(data);

For .Net 4.5 BulkSelect operation is implemented which emulates join in-memory table to DB table. Here is the example:

// We need DbContext first
var context = GetContext();                 

// Obtained a collection of 50k transactions
var transactions = GetListOfTransction();   

// Need to get prices from DB for all transactions, do it with 1 SQL call
var prices = context.Prices.BulkSelect(
    x => new { x.Ticker, x.TradedOn },                      // need to specify key for JOIN
    transactions.Select(x => new { x.Ticker, x.TradedOn })  // obtain key data from local objects
);

// Done, prices variable now contains List<Price> which matches the JOIN DB table to in-memory collection

Npgsql.Bulk

Helper for performing COPY (bulk insert and update) operation easily, using Entity Framework + Npgsql.

.Net 4.5, Standard 2.0 are supported.

var uploader = new NpgsqlBulkUploader(context);
var data = GetALotOfData();

// To create a lot of objects
uploader.Insert(data);

// To update a lot of objects
uploader.Update(data);

For .Net 4.5 BulkSelect operation is implemented which emulates join in-memory table to DB table. Here is the example:

// We need DbContext first
var context = GetContext();                 

// Obtained a collection of 50k transactions
var transactions = GetListOfTransction();   

// Need to get prices from DB for all transactions, do it with 1 SQL call
var prices = context.Prices.BulkSelect(
    x => new { x.Ticker, x.TradedOn },                      // need to specify key for JOIN
    transactions.Select(x => new { x.Ticker, x.TradedOn })  // obtain key data from local objects
);

// Done, prices variable now contains List<Price> which matches the JOIN DB table to in-memory collection

Release Notes

.Net 5 support

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Npgsql.Bulk:

Package Downloads
Hikari
C#数据库连接池,管理多数据库连接 郑重说明:本库定位于数据库连接池,源码GitHub开源公开
BlueBitSoft.BlueUtility
Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
0.9.0 63,670 11/19/2020
0.8.4 6,204 11/6/2020
0.8.3.1 360 11/2/2020
0.8.3 311 10/30/2020
0.8.2 18,004 9/3/2020
0.8.1.1 57,033 4/18/2020
0.8.1 235 4/18/2020
0.8.0 13,188 1/18/2020
0.8.0-beta 252 1/5/2020
0.7.7.1 32,608 11/23/2019
0.7.7 8,010 11/14/2019
0.7.6.1 6,697 10/11/2019
0.7.6 1,200 10/6/2019
0.7.5 21,542 9/29/2019
0.7.4 3,494 7/20/2019
0.7.3 243 7/20/2019
0.7.2 6,567 6/25/2019
0.7.1 3,487 6/14/2019
0.7.0 3,710 5/19/2019
0.6.9 6,103 4/25/2019
0.6.8 3,731 4/3/2019
0.6.7 279 4/2/2019
0.6.6 860 3/22/2019
0.6.5 298 3/20/2019
0.6.4 1,130 3/2/2019
0.6.3 454 2/12/2019
0.6.2 5,299 11/1/2018
0.6.1 5,280 9/14/2018
0.6.0 475 9/13/2018
0.5.21 998 9/13/2018
0.5.20 725 8/23/2018
0.5.19 449 8/22/2018
0.5.18 461 8/21/2018
0.5.17 548 7/23/2018
0.5.16 776 5/23/2018
0.5.15 606 5/16/2018
0.5.14 556 5/1/2018
0.5.13 760 2/23/2018
0.5.12 632 1/10/2018
0.5.11 616 1/9/2018
0.5.10 635 12/26/2017
0.5.9 611 12/25/2017
0.5.8 755 12/11/2017
0.5.7 696 12/10/2017
0.5.6 595 11/16/2017
0.5.5 592 11/1/2017
0.5.4 570 10/25/2017
0.5.2 597 10/17/2017