Skip to content

Commit 279bac5

Browse files
committed
Refactor project structure and rename solution to PhenX.EntityFrameworkCore.BulkInsert
1 parent d19746f commit 279bac5

65 files changed

Lines changed: 270 additions & 225 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/dotnet-test.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ jobs:
1616

1717
steps:
1818
- uses: actions/checkout@v4
19-
- name: Setup .NET
19+
- name: Setup .NET 8.0
2020
uses: actions/setup-dotnet@v4
2121
with:
2222
dotnet-version: 8.0.x
23+
- name: Setup .NET 9.0
24+
uses: actions/setup-dotnet@v4
25+
with:
26+
dotnet-version: 9.0.x
2327
- name: Restore dependencies
2428
run: dotnet restore
2529
- name: Build

.idea/.idea.EntityFrameworkCore.ExecuteInsert/.idea/sqldialects.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.idea/.idea.EntityFrameworkCore.ExecuteInsert/.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/.idea.EntityFrameworkCore.ExecuteInsert/.idea/.gitignore renamed to .idea/.idea.PhenX.EntityFrameworkCore.BulkInsert/.idea/.gitignore

File renamed without changes.

.idea/.idea.PhenX.EntityFrameworkCore.BulkInsert/.idea/.name

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.EntityFrameworkCore.ExecuteInsert/.idea/encodings.xml renamed to .idea/.idea.PhenX.EntityFrameworkCore.BulkInsert/.idea/encodings.xml

File renamed without changes.

.idea/.idea.EntityFrameworkCore.ExecuteInsert/.idea/indexLayout.xml renamed to .idea/.idea.PhenX.EntityFrameworkCore.BulkInsert/.idea/indexLayout.xml

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.PhenX.EntityFrameworkCore.BulkInsert/.idea/vcs.xml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert", "src\EntityFrameworkCore.ExecuteInsert\EntityFrameworkCore.ExecuteInsert.csproj", "{56CA0AE2-6EAB-4394-9E06-132558551251}"
3+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert", "src\PhenX.EntityFrameworkCore.BulkInsert\PhenX.EntityFrameworkCore.BulkInsert.csproj", "{56CA0AE2-6EAB-4394-9E06-132558551251}"
44
EndProject
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert.PostgreSql", "src\EntityFrameworkCore.ExecuteInsert.PostgreSql\EntityFrameworkCore.ExecuteInsert.PostgreSql.csproj", "{F37308A8-1C3C-44D2-9440-670DF76A8C31}"
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert.PostgreSql", "src\PhenX.EntityFrameworkCore.BulkInsert.PostgreSql\PhenX.EntityFrameworkCore.BulkInsert.PostgreSql.csproj", "{F37308A8-1C3C-44D2-9440-670DF76A8C31}"
66
EndProject
7-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert.SqlServer", "src\EntityFrameworkCore.ExecuteInsert.SqlServer\EntityFrameworkCore.ExecuteInsert.SqlServer.csproj", "{8098F37B-FA5E-4BDB-B64A-00FBDE2001C9}"
7+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert.SqlServer", "src\PhenX.EntityFrameworkCore.BulkInsert.SqlServer\PhenX.EntityFrameworkCore.BulkInsert.SqlServer.csproj", "{8098F37B-FA5E-4BDB-B64A-00FBDE2001C9}"
88
EndProject
99
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CBEBA2A8-79E0-412E-93C1-C88F4473D78B}"
1010
ProjectSection(SolutionItems) = preProject
1111
src\Directory.Build.props = src\Directory.Build.props
1212
EndProjectSection
1313
EndProject
1414
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F8A83782-311C-454D-8B97-B3FB86478BF4}"
15+
ProjectSection(SolutionItems) = preProject
16+
tests\Directory.Build.props = tests\Directory.Build.props
17+
EndProjectSection
1518
EndProject
16-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert.Tests", "tests\EntityFrameworkCore.ExecuteInsert.Tests\EntityFrameworkCore.ExecuteInsert.Tests.csproj", "{EDCCED5F-D456-45E2-81A6-1077977F042B}"
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert.Tests", "tests\PhenX.EntityFrameworkCore.BulkInsert.Tests\PhenX.EntityFrameworkCore.BulkInsert.Tests.csproj", "{EDCCED5F-D456-45E2-81A6-1077977F042B}"
1720
EndProject
18-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert.Benchmark", "tests\EntityFrameworkCore.ExecuteInsert.Benchmark\EntityFrameworkCore.ExecuteInsert.Benchmark.csproj", "{E4EB1C53-575C-45F8-924A-93DC42E8ACCA}"
21+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert.Benchmark", "tests\PhenX.EntityFrameworkCore.BulkInsert.Benchmark\PhenX.EntityFrameworkCore.BulkInsert.Benchmark.csproj", "{E4EB1C53-575C-45F8-924A-93DC42E8ACCA}"
1922
EndProject
20-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntityFrameworkCore.ExecuteInsert.Sqlite", "src\EntityFrameworkCore.ExecuteInsert.Sqlite\EntityFrameworkCore.ExecuteInsert.Sqlite.csproj", "{450E859C-411F-4D67-A0B4-4E02C3D30E14}"
23+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhenX.EntityFrameworkCore.BulkInsert.Sqlite", "src\PhenX.EntityFrameworkCore.BulkInsert.Sqlite\PhenX.EntityFrameworkCore.BulkInsert.Sqlite.csproj", "{450E859C-411F-4D67-A0B4-4E02C3D30E14}"
2124
EndProject
2225
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{45366E91-4386-4DAC-9D09-226902EA6D9F}"
2326
ProjectSection(SolutionItems) = preProject

README.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
1-
# EntityFrameworkCore.ExecuteInsert
1+
# PhenX.EntityFrameworkCore.BulkInsert
22

33
A high-performance, provider-agnostic bulk insert extension for Entity Framework Core. Supports SQL Server, PostgreSQL, SQLite.
44

5-
## Features
6-
- Very fast bulk insert support for multiple database providers
7-
- Supports SQL Server, PostgreSQL, and SQLite
8-
- Simple and intuitive API
9-
- Benchmarking and test projects included
5+
Its main purpose is to provide a fast way to perform simple bulk inserts in Entity Framework Core applications.
6+
7+
## Why this library?
8+
9+
- **Performance**: It is designed to be fast and efficient, making it suitable for high-performance applications.
10+
- **Provider-agnostic**: It works with multiple database providers (SQL Server, PostgreSQL, and SQLite), allowing you to use it in different environments without changing your code.
11+
- **Simplicity**: The API is simple and easy to use, making it accessible for developers of all skill levels.
12+
13+
For now, it does not support navigation properties, complex types, owned types, shadow properties, or inheritance,
14+
but they are in [the roadmap](#roadmap).
1015

1116
## Installation
1217

1318
Install the NuGet package for your database provider:
1419

1520
```shell
1621
# For SQL Server
17-
Install-Package EntityFrameworkCore.ExecuteInsert.SqlServer
22+
Install-Package PhenX.EntityFrameworkCore.BulkInsert.SqlServer
1823

1924
# For PostgreSQL
20-
Install-Package EntityFrameworkCore.ExecuteInsert.PostgreSql
25+
Install-Package PhenX.EntityFrameworkCore.BulkInsert.PostgreSql
2126

2227
# For SQLite
23-
Install-Package EntityFrameworkCore.ExecuteInsert.Sqlite
28+
Install-Package PhenX.EntityFrameworkCore.BulkInsert.Sqlite
2429
```
2530

2631
## Usage
@@ -31,7 +36,7 @@ Install-Package EntityFrameworkCore.ExecuteInsert.Sqlite
3136
services.AddDbContext<MyDbContext>(options =>
3237
{
3338
options
34-
.UseSqlServer(connectionString) // or UseNpgsql or UseSqlite, as appropriate
39+
// .UseSqlServer(connectionString) // or UseNpgsql or UseSqlite, as appropriate
3540
.UseBulkInsert(); // <<< The important part
3641
});
3742
```
@@ -59,16 +64,16 @@ await dbContext.ExecuteInsertWithIdentityAsync(entities, options => {});
5964

6065
## Roadmap
6166

62-
- [ ] [Add support for navigation properties](https://github.com/PhenX/EntityFrameworkCore.ExecuteInsert/issues/2)
63-
- [ ] [Add support for complex types](https://github.com/PhenX/EntityFrameworkCore.ExecuteInsert/issues/3)
67+
- [ ] [Add support for navigation properties](https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/issues/2)
68+
- [ ] [Add support for complex types](https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/issues/3)
6469
- [ ] Add support for owned types
6570
- [ ] Add support for shadow properties
6671
- [ ] Add support for TPT (Table Per Type) inheritance
6772
- [ ] Add support for TPC (Table Per Concrete Type) inheritance
6873
- [ ] Add support for TPH (Table Per Hierarchy) inheritance
6974

7075
## Benchmarks
71-
Benchmark projects are available in the [`tests/EntityFrameworkCore.ExecuteInsert.Benchmark`](tests/EntityFrameworkCore.ExecuteInsert.Benchmark/LibComparator.cs) directory.
76+
Benchmark projects are available in the [`tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark`](tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark/LibComparator.cs) directory.
7277
Run them to compare performance with other libraries (https://github.com/videokojot/EFCore.BulkExtensions.MIT and https://entityframework-extensions.net/bulk-extensions),
7378
using optimized configuration (local Docker is required).
7479

0 commit comments

Comments
 (0)