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)]

0 commit comments

Comments
 (0)