Skip to content

Commit f200f33

Browse files
authored
Update to EF 10 (RTM) (#287)
1 parent 2e33783 commit f200f33

File tree

205 files changed

+17884
-8740
lines changed

Some content is hidden

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

205 files changed

+17884
-8740
lines changed

Dependencies.targets

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project>
22
<PropertyGroup>
3-
<DotNetVersion>[10.0.0-preview.6.25358.103,10.0.999]</DotNetVersion>
4-
<EFCoreVersion>[10.0.0-preview.6.25358.103,10.0.999]</EFCoreVersion>
5-
<MSLibVersion>[10.0.0-preview.6.25358.103,10.0.999]</MSLibVersion>
3+
<DotNetVersion>[10.0.0,10.0.999]</DotNetVersion>
4+
<EFCoreVersion>[10.0.0,10.0.999]</EFCoreVersion>
5+
<MSLibVersion>[10.0.0,10.0.999]</MSLibVersion>
66
</PropertyGroup>
77

88
<ItemGroup>
@@ -28,16 +28,16 @@
2828
<PackageReference Update="Microsoft.EntityFrameworkCore.Design" Version="$(EFCoreVersion)" />
2929
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="$(EFCoreVersion)" />
3030
<PackageReference Update="Microsoft.Extensions.Logging.Console" Version="$(MSLibVersion)" />
31-
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.14.1" />
32-
<PackageReference Update="MSTest.TestAdapter" Version="3.9.3" />
33-
<PackageReference Update="MSTest.TestFramework" Version="3.9.3" />
31+
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="18.0.1" />
32+
<PackageReference Update="MSTest.TestAdapter" Version="4.0.2" />
33+
<PackageReference Update="MSTest.TestFramework" Version="4.0.2" />
3434
<PackageReference Update="coverlet.collector" Version="6.0.4" />
35-
<PackageReference Update="Newtonsoft.Json" Version="13.0.3" />
35+
<PackageReference Update="Newtonsoft.Json" Version="13.0.4" />
3636

3737
<!-- EFCore.Jet.FunctionalTests -->
3838
<PackageReference Update="xunit.core" Version="2.9.3"/>
3939
<PackageReference Update="xunit.assert" Version="2.9.3" />
40-
<PackageReference Update="xunit.runner.visualstudio" Version="3.1.2" />
40+
<PackageReference Update="xunit.runner.visualstudio" Version="3.1.5" />
4141
<PackageReference Update="xunit.runner.console" Version="2.9.3" />
4242
<PackageReference Update="Microsoft.Extensions.Configuration.FileExtensions" Version="$(MSLibVersion)" />
4343
<PackageReference Update="NetTopologySuite" Version="2.5.0" />

Version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
correctly.
1717
-->
1818
<VersionPrefix>10.0.0</VersionPrefix>
19-
<PreReleaseVersionLabel>alpha</PreReleaseVersionLabel>
19+
<PreReleaseVersionLabel>beta</PreReleaseVersionLabel>
2020
<PreReleaseVersionIteration>1</PreReleaseVersionIteration>
2121

2222
<!--

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "10.0.100-preview.6.25358.103",
3+
"version": "10.0.100",
44
"allowPrerelease": true,
55
"rollForward": "latestFeature"
66
}

src/EFCore.Jet.Odbc/EFCore.Jet.Odbc.csproj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<RootNamespace>EntityFrameworkCore.Jet</RootNamespace>
88
<PackageTags>$(PackageTags);ODBC;System.Data.Odbc</PackageTags>
99
<Nullable>enable</Nullable>
10+
<ImplicitUsings>enable</ImplicitUsings>
1011
</PropertyGroup>
1112

1213
<ItemGroup>
@@ -18,7 +19,7 @@
1819
</ItemGroup>
1920

2021
<ItemGroup>
21-
<PackageReference Include="System.Data.Odbc" />
22+
<PackageReference Include="System.Data.Odbc" Version="4.5.2" />
2223
</ItemGroup>
2324

2425
<ItemGroup Condition="'$(LocalEFCoreRepository)' != ''">
@@ -30,4 +31,10 @@
3031
</Reference>
3132
</ItemGroup>
3233

34+
<ItemGroup>
35+
<Using Include="Microsoft.EntityFrameworkCore.Diagnostics" />
36+
<Using Include="System.Diagnostics" />
37+
<Using Include="System.Diagnostics.CodeAnalysis" />
38+
</ItemGroup>
39+
3340
</Project>

src/EFCore.Jet.OleDb/EFCore.Jet.OleDb.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<RootNamespace>EntityFrameworkCore.Jet</RootNamespace>
88
<PackageTags>$(PackageTags);OLE DB;OLEDB;System.Data.OleDb</PackageTags>
99
<Nullable>enable</Nullable>
10+
<ImplicitUsings>enable</ImplicitUsings>
1011
</PropertyGroup>
1112

1213
<ItemGroup>
@@ -30,4 +31,10 @@
3031
</Reference>
3132
</ItemGroup>
3233

34+
<ItemGroup>
35+
<Using Include="Microsoft.EntityFrameworkCore.Diagnostics" />
36+
<Using Include="System.Diagnostics" />
37+
<Using Include="System.Diagnostics.CodeAnalysis" />
38+
</ItemGroup>
39+
3340
</Project>

src/EFCore.Jet/EFCore.Jet.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
</ItemGroup>
1717

1818
<ItemGroup Condition="'$(LocalEFCoreRepository)' == ''">
19-
<PackageReference Include="Microsoft.EntityFrameworkCore" PrivateAssets="none" />
20-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" PrivateAssets="none" />
19+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.0-rc.2.*" PrivateAssets="none" />
20+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.0-rc.2.*" PrivateAssets="none" />
2121
</ItemGroup>
2222

2323
<ItemGroup Condition="'$(LocalEFCoreRepository)' != ''">

src/EFCore.Jet/Migrations/Internal/JetMigrationCommandExecutor.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@ public override int ExecuteNonQuery(
2727
output += base.ExecuteNonQuery(batch.Item1, connection, executionState, true, isolationLevel);
2828
if (batch.Item2) Thread.Sleep(4000);//Wait for adox/dao to complete
2929
}
30-
if (connection.CurrentTransaction != null)
31-
{
32-
connection.CurrentTransaction.Commit();
33-
}
30+
31+
connection.CurrentTransaction?.Commit();
3432
return output;
3533
}
3634

src/EFCore.Jet/Migrations/JetMigrationsSqlGenerator.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
using EntityFrameworkCore.Jet.Metadata.Internal;
66
using EntityFrameworkCore.Jet.Migrations.Operations;
77
using EntityFrameworkCore.Jet.Storage.Internal;
8+
using EntityFrameworkCore.Jet.Update.Internal;
89
using EntityFrameworkCore.Jet.Utilities;
10+
using Microsoft.EntityFrameworkCore.Metadata.Internal;
911
using System.Text;
10-
using EntityFrameworkCore.Jet.Update.Internal;
1112

1213
// ReSharper disable once CheckNamespace
1314
namespace Microsoft.EntityFrameworkCore.Migrations
@@ -840,7 +841,7 @@ protected override void ColumnDefinition(
840841
DefaultValue(operation.DefaultValue, operation.DefaultValueSql, columnType, builder);
841842
}
842843

843-
protected override string? GetColumnType(
844+
protected override string GetColumnType(
844845
string? schema,
845846
string table,
846847
string name,
@@ -878,7 +879,14 @@ operation[JetAnnotationNames.Identity] is string identity &&
878879
storeType = storeType.Replace("bigint", "decimal");
879880
}
880881

881-
return storeType;
882+
if (storeType != null)
883+
{
884+
return storeType;
885+
}
886+
887+
var fullTableName = schema != null ? $"{schema}.{table}" : table;
888+
throw new InvalidOperationException(
889+
RelationalStrings.UnsupportedTypeForColumn(fullTableName, name, operation.ClrType?.Name ?? "unknown"));
882890
}
883891

884892
/// <summary>

src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetConvertTranslator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public class JetConvertTranslator(ISqlExpressionFactory sqlExpressionFactory) :
3737
typeof(int),
3838
typeof(long),
3939
typeof(short),
40-
typeof(string)
40+
typeof(string),
41+
typeof(object)
4142
];
4243

4344
private static readonly IEnumerable<MethodInfo> _supportedMethods

src/EFCore.Jet/Query/ExpressionTranslators/Internal/JetDateOnlyMemberTranslator.cs

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,6 @@ namespace EntityFrameworkCore.Jet.Query.ExpressionTranslators.Internal;
1919
/// </remarks>
2020
public class JetDateOnlyMemberTranslator(ISqlExpressionFactory sqlExpressionFactory) : IMemberTranslator
2121
{
22-
private static readonly Dictionary<string, string> DatePartMapping
23-
= new()
24-
{
25-
{ nameof(DateTime.Year), "yyyy" },
26-
{ nameof(DateTime.Month), "m" },
27-
{ nameof(DateTime.DayOfYear), "y" },
28-
{ nameof(DateTime.Day), "d" }
29-
};
30-
31-
private readonly ISqlExpressionFactory _sqlExpressionFactory = sqlExpressionFactory;
32-
3322
/// <summary>
3423
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
3524
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
@@ -41,12 +30,39 @@ private static readonly Dictionary<string, string> DatePartMapping
4130
MemberInfo member,
4231
Type returnType,
4332
IDiagnosticsLogger<DbLoggerCategory.Query> logger)
44-
=> member.DeclaringType == typeof(DateOnly) && DatePartMapping.TryGetValue(member.Name, out var datePart)
45-
? _sqlExpressionFactory.Function(
33+
{
34+
if (member.DeclaringType != typeof(DateOnly) || instance is null)
35+
{
36+
return null;
37+
}
38+
39+
return member.Name switch
40+
{
41+
nameof(DateOnly.Year) => DatePart("yyyy"),
42+
nameof(DateOnly.Month) => DatePart("m"),
43+
nameof(DateOnly.DayOfYear) => DatePart("y"),
44+
nameof(DateOnly.Day) => DatePart("d"),
45+
46+
nameof(DateOnly.DayNumber) => sqlExpressionFactory.Add(sqlExpressionFactory.Function(
47+
"DATEDIFF",
48+
[
49+
sqlExpressionFactory.Constant("d"),
50+
sqlExpressionFactory.Constant(new DateOnly(100, 1, 1)),
51+
instance
52+
],
53+
nullable: true,
54+
argumentsPropagateNullability: [false, true, true],
55+
returnType),sqlExpressionFactory.Constant(new DateOnly(100,1,1).DayNumber)),
56+
57+
_ => null
58+
};
59+
60+
SqlExpression DatePart(string datePart)
61+
=> sqlExpressionFactory.Function(
4662
"DATEPART",
47-
[_sqlExpressionFactory.Constant(datePart), instance!],
63+
[sqlExpressionFactory.Constant(datePart), instance],
4864
nullable: true,
4965
argumentsPropagateNullability: [false, true],
50-
returnType)
51-
: null;
66+
returnType);
67+
}
5268
}

0 commit comments

Comments
 (0)