Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions .github/workflows/dotnet-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,22 @@ jobs:
dotnet: [
{ tfm: net8.0, version: 8.0.x },
{ tfm: net9.0, version: 9.0.x },
{ tfm: net10.0, version: 10.0.x },
]

steps:
- uses: actions/checkout@v4

- name: Setup .NET 9.0 # Latest dotnet version supported
- name: Setup .NET 10.0 # Latest dotnet version supported
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

Comment thread
PhenX marked this conversation as resolved.
- name: Display dotnet version
run: dotnet --version

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --no-restore --framework ${{ matrix.dotnet.tfm }}
run: dotnet build PhenX.EntityFrameworkCore.BulkInsert.Net10.slnx --framework ${{ matrix.dotnet.tfm }}

- name: Test
run: dotnet test --no-build --verbosity normal --framework ${{ matrix.dotnet.tfm }}
run: dotnet test PhenX.EntityFrameworkCore.BulkInsert.Net10.slnx --no-build --verbosity normal --framework ${{ matrix.dotnet.tfm }}
18 changes: 10 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,22 @@ jobs:
with:
dotnet-version: 9.0.x

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --configuration Release --no-restore /p:Version=$VERSION
- name: Setup .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x

- name: Test net8.0
run: dotnet test --configuration Release --no-restore --no-build --verbosity normal --framework net8.0
run: dotnet test PhenX.EntityFrameworkCore.BulkInsert.slnx --configuration Release --verbosity normal --framework net8.0

- name: Test net9.0
run: dotnet test --configuration Release --no-restore --no-build --verbosity normal --framework net9.0
run: dotnet test PhenX.EntityFrameworkCore.BulkInsert.slnx --configuration Release --verbosity normal --framework net9.0

- name: Test net10.0
run: dotnet test PhenX.EntityFrameworkCore.BulkInsert.Net10.slnx --configuration Release --verbosity normal --framework net10.0

- name: Pack nuget packages
run: dotnet pack --configuration Release --no-restore --no-build --output nupkgs /p:PackageVersion=$VERSION
run: dotnet pack PhenX.EntityFrameworkCore.BulkInsert.Net10.slnx --configuration Release --no-build --output nupkgs /p:PackageVersion=$VERSION
Comment thread
PhenX marked this conversation as resolved.

- name: Upload nuget package
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
Expand Down
34 changes: 34 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<Project>

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
<LanguageVersion>12</LanguageVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NeutralLanguage>en</NeutralLanguage>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<!-- <AnalysisMode>AllEnabledByDefault</AnalysisMode>-->
<TreatWarningsAsErrors Condition="$(Configuration) != 'Debug'">true</TreatWarningsAsErrors>
</PropertyGroup>

<PropertyGroup>
<Authors>Fabien Ménager</Authors>
<Description>Super fast bulk insertion for Entity Framework Core on SQL Server, PostgreSQL and SQLite</Description>
<Copyright>Fabien Ménager © 2025</Copyright>
<PackageProjectUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</PackageProjectUrl>
<RepositoryUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>sql sqlite postgresql entity-framework sqlbulkcopy efcore entity-framework-core sqlserver bulk-insert</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<PackageReleaseNotes>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/releases</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<!-- Pomelo.EntityFrameworkCore.MySql.NetTopologySuite is not yet available for .NET 10.0 -->
<MysqlSupported>true</MysqlSupported>
<MysqlSupported Condition="'$(TargetFramework)' == 'net10.0'">false</MysqlSupported>
<DefineConstants Condition="'$(MysqlSupported)' == 'true'">$(DefineConstants);MYSQL_SUPPORTED</DefineConstants>
</PropertyGroup>
</Project>
21 changes: 21 additions & 0 deletions PhenX.EntityFrameworkCore.BulkInsert.Net10.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Solution>
<Folder Name="/root/">
<File Path=".editorconfig" />
<File Path=".gitignore" />
<File Path="Directory.Build.props" />
<File Path="LICENSE" />
<File Path="README.md" />
</Folder>
<Folder Name="/src/">
<File Path="src/Directory.Build.props" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.Oracle/PhenX.EntityFrameworkCore.BulkInsert.Oracle.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.PostgreSql/PhenX.EntityFrameworkCore.BulkInsert.PostgreSql.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.Sqlite/PhenX.EntityFrameworkCore.BulkInsert.Sqlite.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.SqlServer/PhenX.EntityFrameworkCore.BulkInsert.SqlServer.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert/PhenX.EntityFrameworkCore.BulkInsert.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark/PhenX.EntityFrameworkCore.BulkInsert.Benchmark.csproj" />
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/PhenX.EntityFrameworkCore.BulkInsert.Tests.csproj" />
</Folder>
</Solution>
92 changes: 0 additions & 92 deletions PhenX.EntityFrameworkCore.BulkInsert.sln

This file was deleted.

22 changes: 22 additions & 0 deletions PhenX.EntityFrameworkCore.BulkInsert.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Solution>
<Folder Name="/root/">
<File Path=".editorconfig" />
<File Path=".gitignore" />
<File Path="Directory.Build.props" />
<File Path="LICENSE" />
<File Path="README.md" />
</Folder>
<Folder Name="/src/">
<File Path="src/Directory.Build.props" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.MySql/PhenX.EntityFrameworkCore.BulkInsert.MySql.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.Oracle/PhenX.EntityFrameworkCore.BulkInsert.Oracle.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.PostgreSql/PhenX.EntityFrameworkCore.BulkInsert.PostgreSql.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.Sqlite/PhenX.EntityFrameworkCore.BulkInsert.Sqlite.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert.SqlServer/PhenX.EntityFrameworkCore.BulkInsert.SqlServer.csproj" />
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert/PhenX.EntityFrameworkCore.BulkInsert.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark/PhenX.EntityFrameworkCore.BulkInsert.Benchmark.csproj" />
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/PhenX.EntityFrameworkCore.BulkInsert.Tests.csproj" />
</Folder>
</Solution>
28 changes: 3 additions & 25 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,29 +1,7 @@
<Project>

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<LanguageVersion>12</LanguageVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NeutralLanguage>en</NeutralLanguage>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<!-- <AnalysisMode>AllEnabledByDefault</AnalysisMode>-->
<TreatWarningsAsErrors Condition="$(Configuration) != 'Debug'">true</TreatWarningsAsErrors>
</PropertyGroup>

<PropertyGroup>
<Authors>Fabien Ménager</Authors>
<Description>Super fast bulk insertion for Entity Framework Core on SQL Server, PostgreSQL and SQLite</Description>
<Copyright>Fabien Ménager © 2025</Copyright>
<PackageProjectUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</PackageProjectUrl>
<RepositoryUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>sql sqlite postgresql entity-framework sqlbulkcopy efcore entity-framework-core sqlserver bulk-insert</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<PackageReleaseNotes>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/releases</PackageReleaseNotes>
</PropertyGroup>
<!-- Import parents Directory.Build.props files -->
<Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.props" Condition="Exists('$(MSBuildThisFileDirectory)..\Directory.Build.props')" />

<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\README.md" Pack="true" PackagePath="\" />
Expand All @@ -47,7 +25,7 @@

<ItemGroup Label="Package References">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
<PackageReference Include="JetBrains.Annotations" Version="2025.2.2" />
<PackageReference Include="JetBrains.Annotations" Version="2025.2.4" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<!-- Ignore error for preview version of Pomelo.EntityFrameworkCore.MySql -->
<NoWarn>$(NoWarn);NU5104</NoWarn>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks> <!-- net10.0 not supported by Pomelo.EntityFrameworkCore.MySql yet -->
</PropertyGroup>

<ItemGroup>
Expand All @@ -12,6 +12,7 @@
<PackageReference Include="NetTopologySuite" Version="2.6.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net10.0' And '$(MysqlSupported)' == 'true'" Version="10.0.*" />
Comment thread
PhenX marked this conversation as resolved.
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ItemGroup>
<PackageReference Include="Oracle.EntityFrameworkCore" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.23.90" />
<PackageReference Include="Oracle.EntityFrameworkCore" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.23.90" />
<PackageReference Include="Oracle.EntityFrameworkCore" Condition="'$(TargetFramework)' == 'net10.0'" Version="10.23.26000" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<PackageReference Include="NetTopologySuite" Version="2.6.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Condition="'$(TargetFramework)' == 'net10.0'" Version="10.0.*" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<PackageReference Include="NetTopologySuite" Version="2.6.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Condition="'$(TargetFramework)' == 'net10.0'" Version="10.0.*" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Condition="'$(TargetFramework)' == 'net10.0'" Version="10.0.*" />
</ItemGroup>

</Project>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Condition="'$(TargetFramework)' == 'net10.0'" Version="10.0.*" />
</ItemGroup>

<ItemGroup>
Expand Down
10 changes: 0 additions & 10 deletions tests/Directory.Build.props

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;

#if MYSQL_SUPPORTED
using MySqlConnector;
#endif

using Npgsql;

Expand Down Expand Up @@ -144,6 +146,7 @@ private void RawInsertSqlServer()
}
}

#if MYSQL_SUPPORTED
private void RawInsertMySql()
{
var connection = (MySqlConnection)DbContext.Database.GetDbConnection();
Expand Down Expand Up @@ -196,6 +199,7 @@ private void RawInsertMySql()
bulkCopy.WriteToServer(dataTable);
}
}
#endif

private void RawInsertOracle()
{
Expand Down
Loading