DataArc.EntityFrameworkCore 2.0.0

Prefix Reserved
dotnet add package DataArc.EntityFrameworkCore --version 2.0.0
                    
NuGet\Install-Package DataArc.EntityFrameworkCore -Version 2.0.0
                    
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="DataArc.EntityFrameworkCore" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataArc.EntityFrameworkCore" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DataArc.EntityFrameworkCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DataArc.EntityFrameworkCore --version 2.0.0
                    
#r "nuget: DataArc.EntityFrameworkCore, 2.0.0"
                    
#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.
#:package DataArc.EntityFrameworkCore@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DataArc.EntityFrameworkCore&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=DataArc.EntityFrameworkCore&version=2.0.0
                    
Install as a Cake Tool

DataArc.EntityFrameworkCore

Composable parallel execution and high-performance bulk operations for Entity Framework Core without replacing Entity Framework Core.

DataArc.EntityFrameworkCore extends a standard Entity Framework Core DbContext with a parallel execution builder and memory-efficient bulk operations for data-intensive .NET workloads.

Use the same DbContext for DataArc execution and ordinary Entity Framework Core operations.


Free to Use

DataArc.EntityFrameworkCore is available free of charge.

It may be used in personal, commercial, educational, government, and enterprise .NET applications without purchasing a DataArc commercial license.

dotnet add package DataArc.EntityFrameworkCore

Supports .NET 6 through .NET 10.

The current bulk implementation targets SQL Server.


Quick Start

Create and use your DbContext through the normal Entity Framework Core APIs.

await using var dbContext =
    await dbContextFactory.CreateDbContextAsync();

var affected = await dbContext
    .AsParallel()
    .Add(entity)
    .AddBulk(data, batchSize)
    .SaveChangesParallelAsync();

AsParallel() creates a DataArc execution builder over the existing DbContext.

Operations can be composed before execution, including standard entity operations and high-volume bulk operations.

SaveChangesParallelAsync() executes the queued operations through the DataArc parallel execution path.

The same DbContext remains available for ordinary Entity Framework Core operations:

await dbContext.AddAsync(anotherEntity);
await dbContext.SaveChangesAsync();

DataArc does not replace:

  • DbContext
  • LINQ
  • change tracking
  • dependency injection
  • IDbContextFactory<TContext>
  • normal Entity Framework Core persistence

It adds an additional execution path for workloads where composed parallel or bulk operations are useful.


Registration

Register DataArc.EntityFrameworkCore once in the application dependency-injection pipeline:

services.AddDataArcCore();

Continue registering Entity Framework Core contexts normally:

services.AddDbContextFactory<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));

Create contexts through the standard Entity Framework Core APIs:

await using var dbContext =
    await dbContextFactory.CreateDbContextAsync();

No alternative DbContext implementation or repository abstraction is required.


Parallel Execution Builder

Multiple operations can be composed against the same DbContext and executed through a DataArc parallel execution pipeline.

var affected = await dbContext
    .AsParallel()
    .Add(entity)
    .AddBulk(data, batchSize)
    .SaveChangesParallelAsync();

AsParallel() creates the DataArc parallel execution builder.

Operations are added to the builder before execution.

The terminal SaveChangesParallelAsync() executes the queued operations and returns the number of affected rows.

DbContext
    ↓
AsParallel()
    ↓
Add(...)
AddBulk(...)
    ↓
SaveChangesParallelAsync()
    ↓
parallel execution

The builder is scoped to the originating DbContext.

Once execution completes, the same context remains available for ordinary Entity Framework Core operations.

The builder supports standard entity write operations together with DataArc bulk operations, allowing high-volume work to be composed without replacing the application's existing Entity Framework Core persistence model.


Transactional Parallel Execution

Transaction-coordinated parallel execution is available through the commercial DataArc.EntityFrameworkCore.SqlServer package.

The programming model remains similar while execution moves through the SQL Server transactional path.

await dbContext
    .AsParallelTransaction()
    .Add(entity)
    .AddBulk(data, batchSize)
    .CommitTransactionParallelAsync();

AsParallelTransaction() and its transaction coordination capabilities are not part of the free DataArc.EntityFrameworkCore package.

For SQL Server transactional execution, multi-context coordination, DDL composition, and other commercial SQL Server capabilities, see DataArc.EntityFrameworkCore.SqlServer.


Immediate Bulk Operations

Bulk operations can also execute directly against a standard DbContext without creating a parallel execution builder.

AddBulkAsync

Insert entities in batches:

await dbContext.AddBulkAsync(
    employees,
    batchSize);

An optional schema can be supplied when the target table is not in dbo:

await dbContext.AddBulkAsync(
    employees,
    batchSize,
    schema: "hr");

AddBulkAsync executes immediately and does not wait for a later Entity Framework Core SaveChangesAsync() call.

RemoveBulkAsync

Delete entities in batches:

await dbContext.RemoveBulkAsync(
    employees,
    batchSize);

An optional schema can also be supplied:

await dbContext.RemoveBulkAsync(
    employees,
    batchSize,
    schema: "hr");

RemoveBulkAsync also executes immediately.


DataArc and Entity Framework Core on the Same DbContext

DataArc.EntityFrameworkCore does not take ownership of the DbContext and does not replace the Entity Framework Core change tracker.

A context can execute DataArc operations and then continue immediately with normal tracked EF Core operations.

await using var dbContext =
    await dbContextFactory.CreateDbContextAsync();

await dbContext
    .AsParallel()
    .Add(entity)
    .AddBulk(data, batchSize)
    .SaveChangesParallelAsync();

await dbContext.AddAsync(anotherEntity);
await dbContext.SaveChangesAsync();

The execution paths remain separate:

same DbContext
    │
    ├── DataArc
    │     AsParallel()
    │     Add(...)
    │     AddBulk(...)
    │     SaveChangesParallelAsync()
    │
    └── Entity Framework Core
          Add / Update / Remove
          SaveChangesAsync()

This allows DataArc execution to be introduced into individual workflows without replacing the application's existing Entity Framework Core persistence model.


IDbContextFactory Support

Applications can continue using the standard Entity Framework Core IDbContextFactory<TContext> pattern.

public sealed class EmployeeImportService
{
    private readonly IDbContextFactory<ApplicationDbContext> _dbContextFactory;

    public EmployeeImportService(
        IDbContextFactory<ApplicationDbContext> dbContextFactory)
    {
        _dbContextFactory = dbContextFactory;
    }

    public async Task ImportAsync(
        IEnumerable<Employee> employees,
        int batchSize)
    {
        await using var dbContext =
            await _dbContextFactory.CreateDbContextAsync();

        await dbContext.AddBulkAsync(
            employees,
            batchSize);
    }
}

DataArc works with contexts created through the same factory pattern already used by Entity Framework Core applications.


Standard Entity Framework Core Remains Standard

Queries remain ordinary Entity Framework Core:

var employees = await dbContext.Employees
    .AsNoTracking()
    .Where(employee => employee.Rating > rating)
    .ToListAsync();

Tracked persistence remains ordinary Entity Framework Core:

await dbContext.AddAsync(employee);
await dbContext.SaveChangesAsync();

Use DataArc where composed parallel or high-volume execution is useful.

Use Entity Framework Core normally everywhere else.


Features

DataArc.EntityFrameworkCore provides:

  • Parallel execution over a standard DbContext
  • Builder-style composition through AsParallel()
  • Standard entity write operations within the parallel execution builder
  • High-performance bulk insert and delete operations
  • Composition of standard and bulk operations in the same execution pipeline
  • Immediate bulk insert operations
  • Immediate bulk delete operations
  • High-throughput SQL Server bulk execution
  • Batched execution for large data sets
  • Memory-efficient bulk processing
  • Optional database schema selection
  • Compatibility with IDbContextFactory<TContext>
  • Reuse of existing Entity Framework Core connections and metadata
  • Normal tracked Entity Framework Core operations before and after DataArc execution

Performance

DataArc.EntityFrameworkCore is designed for high-throughput execution with low and predictable managed-memory allocation for large data workloads.

This is particularly useful for workloads such as:

  • APIs
  • background workers
  • integration services
  • imports
  • synchronization processes
  • batch processing
  • long-running application services

Benchmarks, methodology, and execution results are available through the DataArc documentation and public repositories.


Documentation

Implementation guidance, benchmarks, examples, and demonstrations are available through the DataArc documentation and public repositories.

  • Documentation: dataarc.dev
  • Demo: DataArc.EntityFrameworkCore.Demos public GitHub repository
  • Microsoft Learn: Entity Framework Core extensions

Support

For support and enquiries, contact support@dataarc.dev.


DataArc

Structured .NET tooling for complex application boundaries.

Product Compatible and additional computed target framework versions.
.NET 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 is compatible.  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 is compatible.  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.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on DataArc.EntityFrameworkCore:

Package Downloads
DataArc.EntityFrameworkCore.SqlServer

DataArc.EntityFrameworkCore provides high-performance, memory-efficient SQL Server bulk operations for standard Entity Framework Core DbContext usage. Supports bulk inserts, bulk deletes, transaction-aware execution, and IDbContextFactory-based applications.

DataArc.OrchestrationFramework

DataArc.OrchestrationFramework provides structured application orchestration and data coordination for .NET. Combines DataArc.Orchestrator, DataArc.Observer, and DataArc.EntityFrameworkCore to provide explicit application orchestration, execution observation, Entity Framework Core integration, and coordinated execution across application and persistence boundaries.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 53 10/5/2026
1.0.0 187 6/26/2026