From 0f4b4f4dc167e74ff27315969a1f79e088948b00 Mon Sep 17 00:00:00 2001 From: Mikhail Preyskurantov <5574159+mpreyskurantov@users.noreply.github.com> Date: Fri, 6 Sep 2024 16:12:28 +0300 Subject: [PATCH 1/4] migrate to net462 / net8, bump / remove csproj(s) for outdated targets / ef core versions (https://learn.microsoft.com/en-us/ef/core/what-is-new/release-planning - out of support + < net8) --- .github/actions/dotnet-test-build/action.yml | 2 -- .github/workflows/ci.yml | 2 +- ...DevExtreme.AspNet.Data.Tests.Common.csproj | 2 +- ...evExtreme.AspNet.Data.Tests.EFCore3.csproj | 24 ------------------ ...evExtreme.AspNet.Data.Tests.EFCore5.csproj | 25 ------------------- ...evExtreme.AspNet.Data.Tests.EFCore6.csproj | 25 ------------------- ...evExtreme.AspNet.Data.Tests.EFCore7.csproj | 25 ------------------- ...evExtreme.AspNet.Data.Tests.EFCore8.csproj | 4 +-- ...evExtreme.AspNet.Data.Tests.EFCore9.csproj | 4 +-- .../DevExtreme.AspNet.Data.Tests.NH.csproj | 2 +- .../DevExtreme.AspNet.Data.Tests.Xpo.csproj | 2 +- .../DevExtreme.AspNet.Data.Tests.csproj | 2 +- net/DevExtreme.AspNet.Data.sln | 24 ------------------ .../DevExtreme.AspNet.Data.csproj | 4 +-- net/Directory.Packages.props | 8 +++--- net/Sample/Sample.csproj | 2 +- 16 files changed, 16 insertions(+), 141 deletions(-) delete mode 100644 net/DevExtreme.AspNet.Data.Tests.EFCore3/DevExtreme.AspNet.Data.Tests.EFCore3.csproj delete mode 100644 net/DevExtreme.AspNet.Data.Tests.EFCore5/DevExtreme.AspNet.Data.Tests.EFCore5.csproj delete mode 100644 net/DevExtreme.AspNet.Data.Tests.EFCore6/DevExtreme.AspNet.Data.Tests.EFCore6.csproj delete mode 100644 net/DevExtreme.AspNet.Data.Tests.EFCore7/DevExtreme.AspNet.Data.Tests.EFCore7.csproj diff --git a/.github/actions/dotnet-test-build/action.yml b/.github/actions/dotnet-test-build/action.yml index 880f848a..5197b513 100644 --- a/.github/actions/dotnet-test-build/action.yml +++ b/.github/actions/dotnet-test-build/action.yml @@ -9,8 +9,6 @@ runs: with: dotnet-quality: ga dotnet-version: | - 6.0 - 7.0 8.0 9.0.x diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff662841..95e2bd48 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -93,7 +93,7 @@ jobs: dotnet-quality: ga dotnet-version: | 3.1 - 6.0 + 8.0 - uses: actions/checkout@v3 diff --git a/net/DevExtreme.AspNet.Data.Tests.Common/DevExtreme.AspNet.Data.Tests.Common.csproj b/net/DevExtreme.AspNet.Data.Tests.Common/DevExtreme.AspNet.Data.Tests.Common.csproj index 5ef15090..0d5d5f38 100644 --- a/net/DevExtreme.AspNet.Data.Tests.Common/DevExtreme.AspNet.Data.Tests.Common.csproj +++ b/net/DevExtreme.AspNet.Data.Tests.Common/DevExtreme.AspNet.Data.Tests.Common.csproj @@ -1,7 +1,7 @@ - net461;net6.0 + net462;net8.0 DevExtreme.AspNet.Data.Tests False diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore3/DevExtreme.AspNet.Data.Tests.EFCore3.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore3/DevExtreme.AspNet.Data.Tests.EFCore3.csproj deleted file mode 100644 index 48e5e892..00000000 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore3/DevExtreme.AspNet.Data.Tests.EFCore3.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - net6.0 - EFCORE3 - - - - - - - - - - - - - - - - - - - diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore5/DevExtreme.AspNet.Data.Tests.EFCore5.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore5/DevExtreme.AspNet.Data.Tests.EFCore5.csproj deleted file mode 100644 index 6d9a31fa..00000000 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore5/DevExtreme.AspNet.Data.Tests.EFCore5.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net6.0 - EFCORE5 - - - - - - - - - - - - - - - - - - - - diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore6/DevExtreme.AspNet.Data.Tests.EFCore6.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore6/DevExtreme.AspNet.Data.Tests.EFCore6.csproj deleted file mode 100644 index a536a381..00000000 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore6/DevExtreme.AspNet.Data.Tests.EFCore6.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net6.0 - EFCORE6 - - - - - - - - - - - - - - - - - - - - diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore7/DevExtreme.AspNet.Data.Tests.EFCore7.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore7/DevExtreme.AspNet.Data.Tests.EFCore7.csproj deleted file mode 100644 index 6b84c124..00000000 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore7/DevExtreme.AspNet.Data.Tests.EFCore7.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net7.0 - EFCORE7 - - - - - - - - - - - - - - - - - - - - diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore8/DevExtreme.AspNet.Data.Tests.EFCore8.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore8/DevExtreme.AspNet.Data.Tests.EFCore8.csproj index 7926cd84..5a87ddee 100644 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore8/DevExtreme.AspNet.Data.Tests.EFCore8.csproj +++ b/net/DevExtreme.AspNet.Data.Tests.EFCore8/DevExtreme.AspNet.Data.Tests.EFCore8.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/net/DevExtreme.AspNet.Data.Tests.EFCore9/DevExtreme.AspNet.Data.Tests.EFCore9.csproj b/net/DevExtreme.AspNet.Data.Tests.EFCore9/DevExtreme.AspNet.Data.Tests.EFCore9.csproj index 1e1b8f89..c47eb70d 100644 --- a/net/DevExtreme.AspNet.Data.Tests.EFCore9/DevExtreme.AspNet.Data.Tests.EFCore9.csproj +++ b/net/DevExtreme.AspNet.Data.Tests.EFCore9/DevExtreme.AspNet.Data.Tests.EFCore9.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/net/DevExtreme.AspNet.Data.Tests.NH/DevExtreme.AspNet.Data.Tests.NH.csproj b/net/DevExtreme.AspNet.Data.Tests.NH/DevExtreme.AspNet.Data.Tests.NH.csproj index 41558238..4af41d4d 100644 --- a/net/DevExtreme.AspNet.Data.Tests.NH/DevExtreme.AspNet.Data.Tests.NH.csproj +++ b/net/DevExtreme.AspNet.Data.Tests.NH/DevExtreme.AspNet.Data.Tests.NH.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 diff --git a/net/DevExtreme.AspNet.Data.Tests.Xpo/DevExtreme.AspNet.Data.Tests.Xpo.csproj b/net/DevExtreme.AspNet.Data.Tests.Xpo/DevExtreme.AspNet.Data.Tests.Xpo.csproj index 02e360f3..251455f7 100644 --- a/net/DevExtreme.AspNet.Data.Tests.Xpo/DevExtreme.AspNet.Data.Tests.Xpo.csproj +++ b/net/DevExtreme.AspNet.Data.Tests.Xpo/DevExtreme.AspNet.Data.Tests.Xpo.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 diff --git a/net/DevExtreme.AspNet.Data.Tests/DevExtreme.AspNet.Data.Tests.csproj b/net/DevExtreme.AspNet.Data.Tests/DevExtreme.AspNet.Data.Tests.csproj index eaf4a80d..e8a154d7 100644 --- a/net/DevExtreme.AspNet.Data.Tests/DevExtreme.AspNet.Data.Tests.csproj +++ b/net/DevExtreme.AspNet.Data.Tests/DevExtreme.AspNet.Data.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 NEWTONSOFT_TESTS diff --git a/net/DevExtreme.AspNet.Data.sln b/net/DevExtreme.AspNet.Data.sln index e35b0f1f..b336d732 100644 --- a/net/DevExtreme.AspNet.Data.sln +++ b/net/DevExtreme.AspNet.Data.sln @@ -28,14 +28,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.L2S", "DevExtreme.AspNet.Data.Tests.L2S\DevExtreme.AspNet.Data.Tests.L2S.csproj", "{190E01CD-78FC-4578-ACBF-7D6C4DC57C18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore3", "DevExtreme.AspNet.Data.Tests.EFCore3\DevExtreme.AspNet.Data.Tests.EFCore3.csproj", "{3DAF3316-6B1B-4961-831A-790647662554}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore5", "DevExtreme.AspNet.Data.Tests.EFCore5\DevExtreme.AspNet.Data.Tests.EFCore5.csproj", "{B8063440-8E4C-4D74-AF92-AE1737FAFD6F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore6", "DevExtreme.AspNet.Data.Tests.EFCore6\DevExtreme.AspNet.Data.Tests.EFCore6.csproj", "{82748269-8B2F-4D65-8367-3D75146335F2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore7", "DevExtreme.AspNet.Data.Tests.EFCore7\DevExtreme.AspNet.Data.Tests.EFCore7.csproj", "{EE44C4FD-0448-4F09-9612-6040E1DD2A8F}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore8", "DevExtreme.AspNet.Data.Tests.EFCore8\DevExtreme.AspNet.Data.Tests.EFCore8.csproj", "{CD8E0248-F0E8-4CE4-94C0-F8905E37D97F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevExtreme.AspNet.Data.Tests.EFCore9", "DevExtreme.AspNet.Data.Tests.EFCore9\DevExtreme.AspNet.Data.Tests.EFCore9.csproj", "{613530E9-013E-4FBD-BC3C-17F28B0C78EA}" @@ -82,22 +74,6 @@ Global {190E01CD-78FC-4578-ACBF-7D6C4DC57C18}.Debug|Any CPU.Build.0 = Debug|Any CPU {190E01CD-78FC-4578-ACBF-7D6C4DC57C18}.Release|Any CPU.ActiveCfg = Release|Any CPU {190E01CD-78FC-4578-ACBF-7D6C4DC57C18}.Release|Any CPU.Build.0 = Release|Any CPU - {3DAF3316-6B1B-4961-831A-790647662554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3DAF3316-6B1B-4961-831A-790647662554}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3DAF3316-6B1B-4961-831A-790647662554}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3DAF3316-6B1B-4961-831A-790647662554}.Release|Any CPU.Build.0 = Release|Any CPU - {B8063440-8E4C-4D74-AF92-AE1737FAFD6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8063440-8E4C-4D74-AF92-AE1737FAFD6F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8063440-8E4C-4D74-AF92-AE1737FAFD6F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8063440-8E4C-4D74-AF92-AE1737FAFD6F}.Release|Any CPU.Build.0 = Release|Any CPU - {82748269-8B2F-4D65-8367-3D75146335F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82748269-8B2F-4D65-8367-3D75146335F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82748269-8B2F-4D65-8367-3D75146335F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82748269-8B2F-4D65-8367-3D75146335F2}.Release|Any CPU.Build.0 = Release|Any CPU - {EE44C4FD-0448-4F09-9612-6040E1DD2A8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE44C4FD-0448-4F09-9612-6040E1DD2A8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE44C4FD-0448-4F09-9612-6040E1DD2A8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE44C4FD-0448-4F09-9612-6040E1DD2A8F}.Release|Any CPU.Build.0 = Release|Any CPU {CD8E0248-F0E8-4CE4-94C0-F8905E37D97F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD8E0248-F0E8-4CE4-94C0-F8905E37D97F}.Debug|Any CPU.Build.0 = Debug|Any CPU {CD8E0248-F0E8-4CE4-94C0-F8905E37D97F}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/net/DevExtreme.AspNet.Data/DevExtreme.AspNet.Data.csproj b/net/DevExtreme.AspNet.Data/DevExtreme.AspNet.Data.csproj index f0431fa6..0544f033 100644 --- a/net/DevExtreme.AspNet.Data/DevExtreme.AspNet.Data.csproj +++ b/net/DevExtreme.AspNet.Data/DevExtreme.AspNet.Data.csproj @@ -14,13 +14,13 @@ DevExtreme.AspNet.Data 99.0 - net461;net6.0 + net462;net8.0 full bin\Debug\$(TargetFramework)\DevExtreme.AspNet.Data.xml 1591 - + diff --git a/net/Directory.Packages.props b/net/Directory.Packages.props index e4b7f934..0c9112ff 100644 --- a/net/Directory.Packages.props +++ b/net/Directory.Packages.props @@ -8,14 +8,14 @@ - - - + + + - + diff --git a/net/Sample/Sample.csproj b/net/Sample/Sample.csproj index 3c7aa9d8..7132b12f 100644 --- a/net/Sample/Sample.csproj +++ b/net/Sample/Sample.csproj @@ -10,7 +10,7 @@ - + From c9a4bb9c871bc7a797b60eb652f0ce8034c0cc40 Mon Sep 17 00:00:00 2001 From: Mikhail Preyskurantov <5574159+mpreyskurantov@users.noreply.github.com> Date: Fri, 6 Sep 2024 17:42:58 +0300 Subject: [PATCH 2/4] fix guid comparison operations (make guid behavior similar to enums: https://github.com/DevExpress/DevExtreme.AspNet.Data/issues/339 vs https://github.com/DevExpress/DevExtreme.AspNet.Data/pull/344 done together): under net8 target 'HasComparisonOperator' returns not null for guid; there is also similar condition in prev 'HasEqualityOperator' method against guid data type specifics --- net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs index 064ced25..b64a862c 100644 --- a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs +++ b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs @@ -175,6 +175,10 @@ bool HasEqualityOperator(Type type) { } bool HasComparisonOperator(Type type) { +#if !NET4 + if(type == typeof(Guid)) + return false; +#endif if(type.IsEnum) return false; From f233a200149d89551fd0319af54e9c22a6183ace Mon Sep 17 00:00:00 2001 From: Mikhail Preyskurantov <5574159+mpreyskurantov@users.noreply.github.com> Date: Fri, 6 Sep 2024 18:21:12 +0300 Subject: [PATCH 3/4] fix guid comparison operations for all targets --- net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs index b64a862c..e65f56c5 100644 --- a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs +++ b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs @@ -175,10 +175,9 @@ bool HasEqualityOperator(Type type) { } bool HasComparisonOperator(Type type) { -#if !NET4 if(type == typeof(Guid)) return false; -#endif + if(type.IsEnum) return false; From 52888253adf1176c2e4c80a42b76d5bc93de8ed4 Mon Sep 17 00:00:00 2001 From: Mikhail Preyskurantov <5574159+mpreyskurantov@users.noreply.github.com> Date: Fri, 6 Sep 2024 18:42:53 +0300 Subject: [PATCH 4/4] fix guid comparison operations: add comment --- net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs index e65f56c5..9133853e 100644 --- a/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs +++ b/net/DevExtreme.AspNet.Data/FilterExpressionCompiler.cs @@ -175,6 +175,7 @@ bool HasEqualityOperator(Type type) { } bool HasComparisonOperator(Type type) { + // Starting with target net7 type.GetMethod("op_GreaterThan", ...) returns not null for Guid if(type == typeof(Guid)) return false;