Skip to content

Commit 87137b3

Browse files
committed
EFCore 3.1 support.
1 parent e66d141 commit 87137b3

File tree

122 files changed

+3530
-1809
lines changed

Some content is hidden

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

122 files changed

+3530
-1809
lines changed

Provider/build.ps1

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ param(
44
$ErrorActionPreference = 'Stop'
55

66
$baseDir = Split-Path -Parent $PSCommandPath
7+
8+
. "$baseDir\include.ps1"
9+
710
$outDir = "$baseDir\out"
811
$version = ''
912

@@ -22,9 +25,13 @@ function Clean() {
2225
}
2326

2427
function Build() {
25-
$solutionFile = "$baseDir\src\NETProvider.sln"
26-
dotnet restore $solutionFile
27-
dotnet msbuild /t:'Clean,Build' /p:Configuration=$Configuration $solutionFile /v:m /m
28+
function b($target) {
29+
dotnet msbuild /t:$target /p:Configuration=$Configuration "$baseDir\src\NETProvider.sln" /v:m /m
30+
Check-ExitCode
31+
}
32+
b 'Clean'
33+
b 'Restore'
34+
b 'Build'
2835
$script:version = (Get-Item $baseDir\src\FirebirdSql.Data.FirebirdClient\bin\$Configuration\net452\FirebirdSql.Data.FirebirdClient.dll).VersionInfo.ProductVersion -replace '(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+)?(.*)','$1.$2.$3$4'
2936
}
3037

@@ -60,4 +67,4 @@ Clean
6067
Build
6168
Pack
6269
NuGets
63-
WiX
70+
WiX

Provider/include.ps1

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function Check-ExitCode() {
2+
$exitCode = $LASTEXITCODE
3+
if ($exitCode -ne 0) {
4+
echo "Non-zero ($exitCode) exit code. Exiting..."
5+
exit $exitCode
6+
}
7+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net452;netcoreapp3.0</TargetFrameworks>
3+
<TargetFrameworks>net452;netcoreapp3.1</TargetFrameworks>
44
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
55
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
66
<SkipSourceLink>true</SkipSourceLink>
@@ -11,7 +11,7 @@
1111
<OutputType>Exe</OutputType>
1212
<StartupObject>FirebirdSql.Data.TestsBase.Program</StartupObject>
1313
</PropertyGroup>
14-
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.0'">
14+
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
1515
<None Remove="app.config" />
1616
</ItemGroup>
1717
<ItemGroup>

Provider/src/EntityFramework.Firebird.Tests/EntityFrameworkTestsBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public abstract class EntityFrameworkTestsBase : FbTestsBase
2727
{
2828
static EntityFrameworkTestsBase()
2929
{
30-
#if NETCOREAPP3_0
30+
#if NETCOREAPP3_1
3131
System.Data.Common.DbProviderFactories.RegisterFactory(FbProviderServices.ProviderInvariantName, FirebirdClientFactory.Instance);
3232
#endif
3333
DbConfiguration.SetConfiguration(new FbTestDbContext.Conf());

Provider/src/FirebirdSql.Data.FirebirdClient.Tests/FirebirdSql.Data.FirebirdClient.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net452;netcoreapp3.0</TargetFrameworks>
3+
<TargetFrameworks>net452;netcoreapp3.1</TargetFrameworks>
44
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
55
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
66
<SkipSourceLink>true</SkipSourceLink>
@@ -22,7 +22,7 @@
2222
<ItemGroup Condition="'$(TargetFramework)'=='net452'">
2323
<Reference Include="System.Transactions" />
2424
</ItemGroup>
25-
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.0'">
25+
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
2626
</ItemGroup>
2727
<ItemGroup>
2828
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />

Provider/src/FirebirdSql.Data.FirebirdClient/FirebirdClient/FbParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ internal static string NormalizeParameterName(string parameterName)
482482

483483
internal static bool IsNonAsciiParameterName(string parameterName)
484484
{
485-
return Encoding.UTF8.GetByteCount(parameterName) != parameterName.Length;
485+
return string.IsNullOrEmpty(parameterName) || Encoding.UTF8.GetByteCount(parameterName) != parameterName.Length;
486486
}
487487

488488
#endregion

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netcoreapp3.0</TargetFramework>
3+
<TargetFramework>netcoreapp3.1</TargetFramework>
44
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
55
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
66
<SkipSourceLink>true</SkipSourceLink>
@@ -10,7 +10,7 @@
1010
<AssemblyOriginatorKeyFile>..\FirebirdSql.Data.TestsBase\FirebirdSql.Data.TestsBase.snk</AssemblyOriginatorKeyFile>
1111
</PropertyGroup>
1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="2.2.6" />
13+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="3.1.1" />
1414
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
1515
<PackageReference Include="xunit" Version="2.4.1" />
1616
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.Helpers
2525
{
2626
public static class ModelHelpers
2727
{
28-
public static void SetStringLengths(ModelBuilder modelBuilder, DbContext context)
28+
public static void SetStringLengths(ModelBuilder modelBuilder)
2929
{
3030
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
3131
{
@@ -39,23 +39,25 @@ public static void SetStringLengths(ModelBuilder modelBuilder, DbContext context
3939
}
4040
}
4141

42-
public static void SimpleTableNames(ModelBuilder modelBuilder, DbContext context)
42+
public static void SimpleTableNames(ModelBuilder modelBuilder)
4343
{
4444
var names = new HashSet<string>(StringComparer.InvariantCulture);
4545
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
4646
{
47-
var name = new string(entityType.Relational().TableName.Where(char.IsUpper).ToArray());
47+
if (entityType.BaseType != null)
48+
continue;
49+
var name = new string(entityType.GetTableName().Where(char.IsUpper).ToArray());
4850
var cnt = 1;
4951
while (names.Contains(name))
5052
{
51-
name = name + cnt++;
53+
name += cnt++;
5254
}
5355
names.Add(name);
54-
entityType.Relational().TableName = name;
56+
entityType.SetTableName(name);
5557
}
5658
}
5759

58-
public static void SetPrimaryKeyGeneration(ModelBuilder modelBuilder, DbContext context, FbValueGenerationStrategy valueGenerationStrategy = FbValueGenerationStrategy.SequenceTrigger)
60+
public static void SetPrimaryKeyGeneration(ModelBuilder modelBuilder, FbValueGenerationStrategy valueGenerationStrategy = FbValueGenerationStrategy.SequenceTrigger)
5961
{
6062
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
6163
{
@@ -65,10 +67,10 @@ public static void SetPrimaryKeyGeneration(ModelBuilder modelBuilder, DbContext
6567
var properties = pk.Properties;
6668
if (properties.Count() != 1)
6769
continue;
68-
var fbPropertyAnnotations = properties[0].Firebird();
69-
if (fbPropertyAnnotations.ValueGenerationStrategy == null)
70+
var property = properties[0];
71+
if (property.GetValueGenerationStrategy() == FbValueGenerationStrategy.None)
7072
{
71-
properties[0].Firebird().ValueGenerationStrategy = valueGenerationStrategy;
73+
property.SetValueGenerationStrategy(valueGenerationStrategy);
7274
}
7375
}
7476
}

Provider/src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Helpers/SkippingAttributes.cs

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,25 @@
1919

2020
namespace FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.Helpers
2121
{
22-
public class HasDataInTheSameTransactionAsDDLAttribute : FactAttribute
22+
public class HasDataInTheSameTransactionAsDDLFactAttribute : FactAttribute
2323
{
24-
public HasDataInTheSameTransactionAsDDLAttribute()
24+
public HasDataInTheSameTransactionAsDDLFactAttribute()
25+
{
26+
Skip = "HasData is called in the same transaction as DDL commands.";
27+
}
28+
}
29+
public class HasDataInTheSameTransactionAsDDLTheoryAttribute : TheoryAttribute
30+
{
31+
public HasDataInTheSameTransactionAsDDLTheoryAttribute()
2532
{
2633
Skip = "HasData is called in the same transaction as DDL commands.";
2734
}
2835
}
2936

3037
#warning Can I somehow handle it in SQL generation?
31-
public class GeneratedNameTooLongAttribute : FactAttribute
38+
public class GeneratedNameTooLongFactAttribute : FactAttribute
3239
{
33-
public GeneratedNameTooLongAttribute()
40+
public GeneratedNameTooLongFactAttribute()
3441
{
3542
Skip = "Generated name in the query is too long.";
3643
}
@@ -43,9 +50,9 @@ public GeneratedNameTooLongTheoryAttribute()
4350
}
4451
}
4552

46-
public class NotSupportedOnFirebirdAttribute : FactAttribute
53+
public class NotSupportedOnFirebirdFactAttribute : FactAttribute
4754
{
48-
public NotSupportedOnFirebirdAttribute()
55+
public NotSupportedOnFirebirdFactAttribute()
4956
{
5057
Skip = "Not supported on Firebird.";
5158
}
@@ -57,4 +64,19 @@ public NotSupportedOnFirebirdTheoryAttribute()
5764
Skip = "Not supported on Firebird.";
5865
}
5966
}
67+
68+
public class DoesNotHaveTheDataFactAttribute : FactAttribute
69+
{
70+
public DoesNotHaveTheDataFactAttribute()
71+
{
72+
Skip = "Does not have the data.";
73+
}
74+
}
75+
public class DoesNotHaveTheDataTheoryAttribute : TheoryAttribute
76+
{
77+
public DoesNotHaveTheDataTheoryAttribute()
78+
{
79+
Skip = "Does not have the data.";
80+
}
81+
}
6082
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
using Xunit;
2+
3+
[assembly: CollectionBehavior(DisableTestParallelization = true)]

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

Lines changed: 12 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
using System;
1919
using System.Threading.Tasks;
20-
using FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.Helpers;
2120
using Microsoft.EntityFrameworkCore;
2221
using Xunit;
2322

@@ -47,44 +46,20 @@ public override void Can_generate_idempotent_down_scripts()
4746
Assert.Throws<NotSupportedException>(base.Can_generate_idempotent_down_scripts);
4847
}
4948

50-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
51-
public override void Can_apply_all_migrations()
52-
=> base.Can_apply_all_migrations();
53-
54-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
55-
public override Task Can_apply_all_migrations_async()
56-
=> base.Can_apply_all_migrations_async();
57-
58-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
59-
public override void Can_revert_one_migrations()
60-
=> base.Can_revert_one_migrations();
61-
62-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
63-
public override void Can_revert_all_migrations()
64-
=> base.Can_revert_all_migrations();
65-
66-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
67-
public override void Can_generate_up_scripts()
68-
=> base.Can_generate_up_scripts();
69-
70-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
71-
public override void Can_generate_up_script_using_names()
72-
=> base.Can_generate_up_script_using_names();
73-
74-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
75-
public override void Can_generate_one_up_script()
76-
=> base.Can_generate_one_up_script();
49+
[Fact(Skip = "")]
50+
public override void Can_diff_against_2_2_model()
51+
{ }
7752

78-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
79-
public override void Can_generate_one_down_script()
80-
=> base.Can_generate_one_down_script();
53+
[Fact(Skip = "")]
54+
public override void Can_diff_against_3_0_ASP_NET_Identity_model()
55+
{ }
8156

82-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
83-
public override void Can_generate_down_scripts()
84-
=> base.Can_generate_down_scripts();
57+
[Fact(Skip = "")]
58+
public override void Can_diff_against_2_2_ASP_NET_Identity_model()
59+
{ }
8560

86-
[Fact(Skip = "See #14811 on EntityFrameworkCore.")]
87-
public override void Can_generate_down_script_using_names()
88-
=> base.Can_generate_down_script_using_names();
61+
[Fact(Skip = "")]
62+
public override void Can_diff_against_2_1_ASP_NET_Identity_model()
63+
{ }
8964
}
9065
}

Provider/src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Query/AsyncGroupByQueryFbTest.cs

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

Provider/src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Query/AsyncSimpleQueryFbTest.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
//$Authors = Jiri Cincura ([email protected])
1717

1818
using System.Threading.Tasks;
19+
using FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.Helpers;
1920
using Microsoft.EntityFrameworkCore.Query;
2021
using Microsoft.EntityFrameworkCore.TestUtilities;
2122
using Xunit;
@@ -33,5 +34,17 @@ public override Task Query_backed_by_database_view()
3334
{
3435
return base.Query_backed_by_database_view();
3536
}
37+
38+
[NotSupportedOnFirebirdFact]
39+
public override Task Intersect_non_entity()
40+
{
41+
return base.Intersect_non_entity();
42+
}
43+
44+
[NotSupportedOnFirebirdFact]
45+
public override Task Except_non_entity()
46+
{
47+
return base.Except_non_entity();
48+
}
3649
}
3750
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515

1616
//$Authors = Jiri Cincura ([email protected])
1717

18+
using System.Threading.Tasks;
1819
using Microsoft.EntityFrameworkCore.Query;
1920
using Microsoft.EntityFrameworkCore.TestUtilities;
21+
using Xunit;
2022

2123
namespace FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests.Query
2224
{

Provider/src/FirebirdSql.EntityFrameworkCore.Firebird.FunctionalTests/Query/ComplexNavigationsQueryFbFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class ComplexNavigationsQueryFbFixture : ComplexNavigationsQueryRelationa
3030
protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context)
3131
{
3232
base.OnModelCreating(modelBuilder, context);
33-
ModelHelpers.SimpleTableNames(modelBuilder, context);
33+
ModelHelpers.SimpleTableNames(modelBuilder);
3434
}
3535
}
3636
}

0 commit comments

Comments
 (0)