Skip to content

Commit b546aad

Browse files
author
fabien.menager
committed
Fix support for net 10, excluding MySQL and reorganize Directory.Build.props files
1 parent 016cca0 commit b546aad

10 files changed

Lines changed: 61 additions & 53 deletions

File tree

Directory.Build.props

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
5+
<LanguageVersion>12</LanguageVersion>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<NeutralLanguage>en</NeutralLanguage>
9+
<EnableNETAnalyzers>true</EnableNETAnalyzers>
10+
<!-- <AnalysisMode>AllEnabledByDefault</AnalysisMode>-->
11+
<TreatWarningsAsErrors Condition="$(Configuration) != 'Debug'">true</TreatWarningsAsErrors>
12+
</PropertyGroup>
13+
14+
<PropertyGroup>
15+
<Authors>Fabien Ménager</Authors>
16+
<Description>Super fast bulk insertion for Entity Framework Core on SQL Server, PostgreSQL and SQLite</Description>
17+
<Copyright>Fabien Ménager © 2025</Copyright>
18+
<PackageProjectUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</PackageProjectUrl>
19+
<RepositoryUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</RepositoryUrl>
20+
<RepositoryType>git</RepositoryType>
21+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
22+
<PackageTags>sql sqlite postgresql entity-framework sqlbulkcopy efcore entity-framework-core sqlserver bulk-insert</PackageTags>
23+
<PackageReadmeFile>README.md</PackageReadmeFile>
24+
<PackageIcon>icon.png</PackageIcon>
25+
<PackageReleaseNotes>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/releases</PackageReleaseNotes>
26+
</PropertyGroup>
27+
28+
<PropertyGroup>
29+
<!-- Pomelo.EntityFrameworkCore.MySql.NetTopologySuite is not yet available for .NET 10.0 -->
30+
<MysqlSupported>true</MysqlSupported>
31+
<MysqlSupported Condition="'$(TargetFramework)' == 'net10.0'">false</MysqlSupported>
32+
</PropertyGroup>
33+
</Project>

PhenX.EntityFrameworkCore.BulkInsert.slnx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<Folder Name="/root/">
33
<File Path=".editorconfig" />
44
<File Path=".gitignore" />
5+
<File Path="Directory.Build.props" />
56
<File Path="LICENSE" />
67
<File Path="README.md" />
78
</Folder>
@@ -15,7 +16,6 @@
1516
<Project Path="src/PhenX.EntityFrameworkCore.BulkInsert/PhenX.EntityFrameworkCore.BulkInsert.csproj" />
1617
</Folder>
1718
<Folder Name="/tests/">
18-
<File Path="tests/Directory.Build.props" />
1919
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark/PhenX.EntityFrameworkCore.BulkInsert.Benchmark.csproj" />
2020
<Project Path="tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/PhenX.EntityFrameworkCore.BulkInsert.Tests.csproj" />
2121
</Folder>

src/Directory.Build.props

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,7 @@
11
<Project>
22

3-
<PropertyGroup>
4-
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
5-
<LanguageVersion>12</LanguageVersion>
6-
<ImplicitUsings>enable</ImplicitUsings>
7-
<Nullable>enable</Nullable>
8-
<NeutralLanguage>en</NeutralLanguage>
9-
<EnableNETAnalyzers>true</EnableNETAnalyzers>
10-
<!-- <AnalysisMode>AllEnabledByDefault</AnalysisMode>-->
11-
<TreatWarningsAsErrors Condition="$(Configuration) != 'Debug'">true</TreatWarningsAsErrors>
12-
</PropertyGroup>
13-
14-
<PropertyGroup>
15-
<Authors>Fabien Ménager</Authors>
16-
<Description>Super fast bulk insertion for Entity Framework Core on SQL Server, PostgreSQL and SQLite</Description>
17-
<Copyright>Fabien Ménager © 2025</Copyright>
18-
<PackageProjectUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</PackageProjectUrl>
19-
<RepositoryUrl>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert</RepositoryUrl>
20-
<RepositoryType>git</RepositoryType>
21-
<PackageLicenseExpression>MIT</PackageLicenseExpression>
22-
<PackageTags>sql sqlite postgresql entity-framework sqlbulkcopy efcore entity-framework-core sqlserver bulk-insert</PackageTags>
23-
<PackageReadmeFile>README.md</PackageReadmeFile>
24-
<PackageIcon>icon.png</PackageIcon>
25-
<PackageReleaseNotes>https://github.com/PhenX/PhenX.EntityFrameworkCore.BulkInsert/releases</PackageReleaseNotes>
26-
</PropertyGroup>
3+
<!-- Import parents Directory.Build.props files -->
4+
<Import Project="$(SBuildThisFileDirectory)..\Directory.Build.props" Condition="Exists('$(MSBuildThisFileDirectory)..\Directory.Build.props')" />
275

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

4826
<ItemGroup Label="Package References">
4927
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
50-
<PackageReference Include="JetBrains.Annotations" Version="2025.2.2" />
28+
<PackageReference Include="JetBrains.Annotations" Version="2025.2.4" />
5129
</ItemGroup>
5230

5331
</Project>

src/PhenX.EntityFrameworkCore.BulkInsert.MySql/PhenX.EntityFrameworkCore.BulkInsert.MySql.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
3+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks> <!-- net10.0 not supported by Pomelo.EntityFrameworkCore.MySql yet -->
44
<!-- Ignore error for preview version of Pomelo.EntityFrameworkCore.MySql -->
55
<NoWarn>$(NoWarn);NU5104</NoWarn>
66
</PropertyGroup>
@@ -13,6 +13,7 @@
1313
<PackageReference Include="NetTopologySuite" Version="2.6.0" />
1414
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net8.0'" Version="8.0.*" />
1515
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net9.0'" Version="9.0.*" />
16+
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Condition="'$(TargetFramework)' == 'net10.0' And '$(MysqlSupported)' == 'true'" Version="10.0.*" />
1617
</ItemGroup>
1718

1819
</Project>

tests/Directory.Build.props

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

tests/PhenX.EntityFrameworkCore.BulkInsert.Benchmark/PhenX.EntityFrameworkCore.BulkInsert.Benchmark.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="BenchmarkDotNet" Version="0.15.4" />
10+
<PackageReference Include="BenchmarkDotNet" Version="0.15.8" />
1111
<PackageReference Include="Testcontainers.PostgreSql" Version="4.7.0" />
1212
<PackageReference Include="Testcontainers.MsSql" Version="4.7.0" />
1313
<PackageReference Include="Testcontainers.MySql" Version="4.7.0" />
@@ -16,14 +16,14 @@
1616

1717
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
1818
<PackageReference Include="EFCore.BulkExtensions" Version="8.1.3" />
19-
<PackageReference Include="Z.EntityFramework.Extensions.EFCore" Version="8.104.0.1" />
20-
<PackageReference Include="linq2db.EntityFrameworkCore" Version="8.1.0" />
19+
<PackageReference Include="Z.EntityFramework.Extensions.EFCore" Version="8.105.2" />
20+
<PackageReference Include="linq2db.EntityFrameworkCore" Version="8.3.0" />
2121
</ItemGroup>
2222

2323
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
2424
<PackageReference Include="EFCore.BulkExtensions" Version="9.0.2" />
25-
<PackageReference Include="Z.EntityFramework.Extensions.EFCore" Version="9.104.0.1" />
26-
<PackageReference Include="linq2db.EntityFrameworkCore" Version="9.0.0" />
25+
<PackageReference Include="Z.EntityFramework.Extensions.EFCore" Version="9.105.2" />
26+
<PackageReference Include="linq2db.EntityFrameworkCore" Version="9.2.0" />
2727
</ItemGroup>
2828

2929
<ItemGroup>

tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/DbContext/TestSmartEnum.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,5 @@ private TestSmartEnum(string name, int value) : base(name, value)
88
{
99
}
1010

11-
#if NET10_OR_GREATER
12-
public static readonly TestSmartEnum Value = new TestSmartEnum("test", 1);
13-
#else
14-
public static readonly new TestSmartEnum Value = new TestSmartEnum("test", 1);
15-
#endif
11+
public static readonly TestSmartEnum Test = new TestSmartEnum("test", 1);
1612
}

tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/PhenX.EntityFrameworkCore.BulkInsert.Tests.csproj

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<Nullable>enable</Nullable>
54
<IsPackable>false</IsPackable>
65
<IsTestProject>true</IsTestProject>
76
</PropertyGroup>
@@ -22,6 +21,10 @@
2221
<PackageReference Include="Xunit.SkippableFact" Version="1.5.23" />
2322
</ItemGroup>
2423

24+
<ItemGroup Label="Exclude MySql tests" Condition="'$(MysqlSupported)' != 'true'">
25+
<Compile Remove="**\*MySql*.cs" />
26+
</ItemGroup>
27+
2528
<ItemGroup Label="Test containers">
2629
<PackageReference Include="Testcontainers" Version="4.7.0" />
2730
<PackageReference Include="Testcontainers.PostgreSql" Version="4.7.0" />
@@ -42,12 +45,18 @@
4245
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.NetTopologySuite" Version="9.0.0" />
4346
</ItemGroup>
4447

48+
<ItemGroup Label="NetTopologySuite net10.0" Condition="'$(TargetFramework)' == 'net10.0'">
49+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Version="10.0.2" />
50+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="10.0.0" />
51+
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.NetTopologySuite" Version="10.0.0" Condition="'$(MysqlSupported)' == 'true'" />
52+
</ItemGroup>
53+
4554
<ItemGroup Label="Specific dependencies">
4655
<PackageReference Include="Ardalis.SmartEnum.EFCore" Version="8.2.0" />
4756
</ItemGroup>
4857

4958
<ItemGroup>
50-
<ProjectReference Include="..\..\src\PhenX.EntityFrameworkCore.BulkInsert.MySql\PhenX.EntityFrameworkCore.BulkInsert.MySql.csproj" />
59+
<ProjectReference Include="..\..\src\PhenX.EntityFrameworkCore.BulkInsert.MySql\PhenX.EntityFrameworkCore.BulkInsert.MySql.csproj" Condition="'$(MysqlSupported)' == 'true'" />
5160
<ProjectReference Include="..\..\src\PhenX.EntityFrameworkCore.BulkInsert.Oracle\PhenX.EntityFrameworkCore.BulkInsert.Oracle.csproj" />
5261
<ProjectReference Include="..\..\src\PhenX.EntityFrameworkCore.BulkInsert.PostgreSql\PhenX.EntityFrameworkCore.BulkInsert.PostgreSql.csproj" />
5362
<ProjectReference Include="..\..\src\PhenX.EntityFrameworkCore.BulkInsert.Sqlite\PhenX.EntityFrameworkCore.BulkInsert.Sqlite.csproj" />

tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/Tests/Basic/BasicTestsBase.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
using PhenX.EntityFrameworkCore.BulkInsert.Enums;
55
using PhenX.EntityFrameworkCore.BulkInsert.Extensions;
6-
using PhenX.EntityFrameworkCore.BulkInsert.MySql;
76
using PhenX.EntityFrameworkCore.BulkInsert.SqlServer;
87
using PhenX.EntityFrameworkCore.BulkInsert.Tests.DbContainer;
98
using PhenX.EntityFrameworkCore.BulkInsert.Tests.DbContext;
@@ -277,13 +276,15 @@ public async Task ThrowsWhenUsingWrongConfigurationType()
277276
};
278277

279278
// Act & Assert
279+
#if !NETCOREAPP1_0_OR_GREATER
280280
if (_context.IsProvider(ProviderType.SqlServer))
281281
{
282282
await Assert.ThrowsAsync<InvalidOperationException>(async () =>
283-
await _context.ExecuteBulkInsertAsync(entities, (MySqlBulkInsertOptions _) =>
283+
await _context.ExecuteBulkInsertAsync(entities, (PhenX.EntityFrameworkCore.BulkInsert.MySql.MySqlBulkInsertOptions _) =>
284284
{
285285
}));
286286
}
287+
#endif
287288

288289
if (_context.IsProvider(ProviderType.MySql))
289290
{

tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/Tests/Various/VariousTestsBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ public async Task InsertSmartEnumEntities(InsertStrategy strategy)
3131
// Arrange
3232
var entities = new List<TestEntityWithSmartEnum>
3333
{
34-
new TestEntityWithSmartEnum { TestRun = _run, Enum = TestSmartEnum.Value},
35-
new TestEntityWithSmartEnum { TestRun = _run, Enum = TestSmartEnum.Value}
34+
new TestEntityWithSmartEnum { TestRun = _run, Enum = TestSmartEnum.Test},
35+
new TestEntityWithSmartEnum { TestRun = _run, Enum = TestSmartEnum.Test}
3636
};
3737

3838
// Act

0 commit comments

Comments
 (0)