Skip to content

Commit f2a5539

Browse files
committed
EF Core 8 provider (and refactoring around).
1 parent 6bce4ed commit f2a5539

File tree

67 files changed

+1933
-278
lines changed

Some content is hidden

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

67 files changed

+1933
-278
lines changed

build.ps1

+19-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ $baseDir = Split-Path -Parent $PSCommandPath
88
. "$baseDir\include.ps1"
99

1010
$outDir = "$baseDir\out"
11-
$version = ''
11+
$versionProvider = ''
12+
$versionEFCore = ''
13+
$versionEF6 = ''
1214

1315
function Clean() {
1416
if (Test-Path $outDir) {
@@ -29,19 +31,28 @@ function Build() {
2931
b 'Restore' $False
3032
b 'Restore'
3133
b 'Build'
32-
$script:version = (Get-Item $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\$(Get-UsedTargetFramework)\FirebirdSql.Data.FirebirdClient.dll).VersionInfo.ProductVersion -replace '(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+)?(.*)','$1.$2.$3$4'
34+
}
35+
36+
function Versions() {
37+
function v($file) {
38+
return (Get-Item $file).VersionInfo.ProductVersion -replace '(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+)?.*','$1.$2.$3$4'
39+
}
40+
$script:versionProvider = v $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\net8.0\FirebirdSql.Data.FirebirdClient.dll
41+
$script:versionEFCore = v $baseDir\src\FirebirdSql.EntityFrameworkCore.Firebird\bin\$Configuration\net8.0\FirebirdSql.EntityFrameworkCore.Firebird.dll
42+
$script:versionEF6 = v $baseDir\src\EntityFramework.Firebird\bin\$Configuration\net48\EntityFramework.Firebird.dll
3343
}
3444

3545
function NuGets() {
36-
cp $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\FirebirdSql.Data.FirebirdClient.$version.nupkg $outDir
37-
cp $baseDir\src\EntityFramework.Firebird\bin\$Configuration\EntityFramework.Firebird.$version.nupkg $outDir
38-
cp $baseDir\src\FirebirdSql.EntityFrameworkCore.Firebird\bin\$Configuration\FirebirdSql.EntityFrameworkCore.Firebird.$version.nupkg $outDir
46+
cp $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\FirebirdSql.Data.FirebirdClient.$versionProvider.nupkg $outDir
47+
cp $baseDir\src\FirebirdSql.EntityFrameworkCore.Firebird\bin\$Configuration\FirebirdSql.EntityFrameworkCore.Firebird.$versionEFCore.nupkg $outDir
48+
cp $baseDir\src\EntityFramework.Firebird\bin\$Configuration\EntityFramework.Firebird.$versionEF6.nupkg $outDir
3949

40-
cp $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\FirebirdSql.Data.FirebirdClient.$version.snupkg $outDir
41-
cp $baseDir\src\EntityFramework.Firebird\bin\$Configuration\EntityFramework.Firebird.$version.snupkg $outDir
42-
cp $baseDir\src\FirebirdSql.EntityFrameworkCore.Firebird\bin\$Configuration\FirebirdSql.EntityFrameworkCore.Firebird.$version.snupkg $outDir
50+
cp $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\FirebirdSql.Data.FirebirdClient.$versionProvider.snupkg $outDir
51+
cp $baseDir\src\FirebirdSql.EntityFrameworkCore.Firebird\bin\$Configuration\FirebirdSql.EntityFrameworkCore.Firebird.$versionEFCore.snupkg $outDir
52+
cp $baseDir\src\EntityFramework.Firebird\bin\$Configuration\EntityFramework.Firebird.$versionEF6.snupkg $outDir
4353
}
4454

4555
Clean
4656
Build
57+
Versions
4758
NuGets

include.ps1

-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,4 @@ function Check-ExitCode() {
44
echo "Non-zero ($exitCode) exit code. Exiting..."
55
exit $exitCode
66
}
7-
}
8-
9-
function Get-UsedTargetFramework() {
10-
return 'net8.0'
117
}

src/Directory.Build.props

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<Project>
2+
<Import Project="Versions.props" />
23
<PropertyGroup>
34
<LangVersion>latest</LangVersion>
45
<DebugType>portable</DebugType>
56
</PropertyGroup>
67
<PropertyGroup>
7-
<VersionPrefix>10.0.0</VersionPrefix>
8-
<VersionSuffix></VersionSuffix>
98
<Company>FirebirdSQL</Company>
109
<Product>NETProvider</Product>
1110
<Authors>FirebirdSQL</Authors>

src/EntityFramework.Firebird.Tests/EntityFramework.Firebird.Tests.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
<PackageReference Include="NUnitLite" Version="3.13.3" />
2323
</ItemGroup>
2424
<ItemGroup>
25-
<ProjectReference Include="..\FirebirdSql.Data.FirebirdClient\FirebirdSql.Data.FirebirdClient.csproj" />
2625
<ProjectReference Include="..\EntityFramework.Firebird\EntityFramework.Firebird.csproj" />
2726
</ItemGroup>
2827
<ItemGroup>

src/EntityFramework.Firebird/EntityFramework.Firebird.csproj

+6-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1010
</PropertyGroup>
1111
<PropertyGroup>
12+
<Version>$(EF6ProviderVersion)</Version>
1213
<AssemblyTitle>NETProvider - Entity Framework Provider</AssemblyTitle>
1314
<Copyright>(c) 2014-$(CopyrightEndYear)</Copyright>
1415
</PropertyGroup>
@@ -45,15 +46,18 @@
4546
<None Include="..\..\firebird-logo.png" Pack="true" PackagePath="" />
4647
</ItemGroup>
4748
<ItemGroup>
48-
<PackageReference Include="EntityFramework" Version="6.4.4" />
49+
<PackageReference Include="EntityFramework" Version="$(EF6ReferencePackageVersion)" />
4950
</ItemGroup>
5051
<ItemGroup Condition="'$(TargetFramework)'=='net48'">
5152
<Reference Include="System.Configuration" />
5253
<Reference Include="Microsoft.CSharp" />
5354
</ItemGroup>
5455
<ItemGroup Condition="'$(TargetFramework)'=='netstandard2.1'">
5556
</ItemGroup>
56-
<ItemGroup>
57+
<ItemGroup Condition="'$(Configuration)'!='Debug'">
58+
<PackageReference Include="FirebirdSql.Data.FirebirdClient" Version="$(EF6ReferenceProviderVersion)" />
59+
</ItemGroup>
60+
<ItemGroup Condition="'$(Configuration)'=='Debug'">
5761
<ProjectReference Include="..\FirebirdSql.Data.FirebirdClient\FirebirdSql.Data.FirebirdClient.csproj" />
5862
</ItemGroup>
5963
</Project>

src/FirebirdSql.Data.FirebirdClient/FirebirdSql.Data.FirebirdClient.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
1111
</PropertyGroup>
1212
<PropertyGroup>
13+
<Version>$(ProviderVersion)</Version>
1314
<AssemblyTitle>NETProvider - ADO.NET Data Provider</AssemblyTitle>
1415
<Copyright>(c) 2002-$(CopyrightEndYear)</Copyright>
1516
</PropertyGroup>

src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<PreserveCompilationContext>true</PreserveCompilationContext>
1212
</PropertyGroup>
1313
<ItemGroup>
14-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="7.0.10" />
14+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="$(EFCoreReferencePackageVersion)" />
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
1616
<PackageReference Include="xunit" Version="2.4.2" />
1717
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
@@ -20,7 +20,6 @@
2020
</PackageReference>
2121
</ItemGroup>
2222
<ItemGroup>
23-
<ProjectReference Include="..\FirebirdSql.Data.FirebirdClient\FirebirdSql.Data.FirebirdClient.csproj" />
2423
<ProjectReference Include="..\FirebirdSql.EntityFrameworkCore.Firebird\FirebirdSql.EntityFrameworkCore.Firebird.csproj" />
2524
</ItemGroup>
2625
<ItemGroup>

src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Helpers/ModelHelpers.cs

+23-5
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,30 @@ public static void SetStringLengths(ModelBuilder modelBuilder)
3030
{
3131
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
3232
{
33-
foreach (var property in entityType.GetProperties())
33+
HandleProperties(entityType.GetProperties());
34+
HandleComplexProperties(entityType.GetComplexProperties());
35+
}
36+
37+
void HandleProperties(IEnumerable<IMutableProperty> properties)
38+
{
39+
foreach (var property in properties)
40+
{
41+
SetStringLength(property);
42+
}
43+
}
44+
void HandleComplexProperties(IEnumerable<IMutableComplexProperty> complexProperties)
45+
{
46+
foreach (var cp in complexProperties)
47+
{
48+
HandleProperties(cp.ComplexType.GetProperties());
49+
HandleComplexProperties(cp.ComplexType.GetComplexProperties());
50+
}
51+
}
52+
void SetStringLength(IMutableProperty property)
53+
{
54+
if (property.ClrType == typeof(string) && property.GetMaxLength() == null)
3455
{
35-
if (property.ClrType == typeof(string) && property.GetMaxLength() == null)
36-
{
37-
property.SetMaxLength(500);
38-
}
56+
property.SetMaxLength(500);
3957
}
4058
}
4159
}

src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/MigrationsFbTest.cs

+34-2
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,10 @@ public MigrationsFbTest(MigrationsFbFixture fixture)
129129
[Fact(Skip = SkipReason)]
130130
public override Task Add_column_with_collation() => base.Add_column_with_collation();
131131

132-
[Fact(Skip = SkipReason)]
133-
public override Task Add_column_computed_with_collation() => base.Add_column_computed_with_collation();
132+
[Theory(Skip = SkipReason)]
133+
[InlineData(true)]
134+
[InlineData(false)]
135+
public override Task Add_column_computed_with_collation(bool stored) => base.Add_column_computed_with_collation(stored);
134136

135137
[Fact(Skip = SkipReason)]
136138
public override Task Add_column_shared() => base.Add_column_shared();
@@ -324,6 +326,36 @@ public MigrationsFbTest(MigrationsFbFixture fixture)
324326
[Fact(Skip = SkipReason)]
325327
public override Task Drop_primary_key_string() => base.Drop_primary_key_string();
326328

329+
[Fact(Skip = SkipReason)]
330+
public override Task Alter_sequence_restart_with() => base.Alter_sequence_restart_with();
331+
332+
[Fact(Skip = SkipReason)]
333+
public override Task Add_column_with_unbounded_max_length() => base.Add_column_with_unbounded_max_length();
334+
335+
[Fact(Skip = SkipReason)]
336+
public override Task Add_optional_primitive_collection_to_existing_table() => base.Add_optional_primitive_collection_to_existing_table();
337+
338+
[Fact(Skip = SkipReason)]
339+
public override Task Add_required_primitve_collection_to_existing_table() => base.Add_required_primitve_collection_to_existing_table();
340+
341+
[Fact(Skip = SkipReason)]
342+
public override Task Add_required_primitve_collection_with_custom_converter_and_custom_default_value_to_existing_table() => base.Add_required_primitve_collection_with_custom_converter_and_custom_default_value_to_existing_table();
343+
344+
[Fact(Skip = SkipReason)]
345+
public override Task Add_required_primitve_collection_with_custom_default_value_to_existing_table() => base.Add_required_primitve_collection_with_custom_default_value_to_existing_table();
346+
347+
[Fact(Skip = SkipReason)]
348+
public override Task Create_table_with_complex_type_with_required_properties_on_derived_entity_in_TPH() => base.Create_table_with_complex_type_with_required_properties_on_derived_entity_in_TPH();
349+
350+
[Fact(Skip = SkipReason)]
351+
public override Task Create_table_with_optional_primitive_collection() => base.Create_table_with_optional_primitive_collection();
352+
353+
[Fact(Skip = SkipReason)]
354+
public override Task Create_table_with_required_primitive_collection() => base.Create_table_with_required_primitive_collection();
355+
356+
[Fact(Skip = SkipReason)]
357+
public override Task Add_required_primitve_collection_with_custom_default_value_sql_to_existing_table() => Task.CompletedTask;
358+
327359
public class MigrationsFbFixture : MigrationsFixtureBase
328360
{
329361
protected override string StoreName => nameof(MigrationsFbTest);

src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Query/ComplexNavigationsCollectionsSplitSharedTypeQueryFbTest.cs

+7
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,11 @@ public override Task Take_Select_collection_Take(bool async)
146146
{
147147
return base.Take_Select_collection_Take(async);
148148
}
149+
150+
[NotSupportedOnFirebirdTheory]
151+
[MemberData(nameof(IsAsyncData))]
152+
public override Task Filtered_include_Skip_Take_with_another_Skip_Take_on_top_level(bool async)
153+
{
154+
return base.Filtered_include_Skip_Take_with_another_Skip_Take_on_top_level(async);
155+
}
149156
}

0 commit comments

Comments
 (0)