diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ff1b51d3..adf8ba21 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,12 +19,16 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
+
+ - uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '9.0.x'
- name: Build
run: |
dotnet build ./src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj -c Release -p:buildType=azure-pipelines-ci
- - name: Run Tests EFCore net8.0
+ - name: Run Tests EFCore net9.0
run: |
dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj -c Release -p:buildType=azure-pipelines-ci
@@ -38,6 +42,10 @@ jobs:
steps:
- uses: actions/checkout@v4
+
+ - uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '9.0.x'
- uses: actions/setup-java@v4
with:
@@ -75,13 +83,18 @@ jobs:
- name: Run Tests EFCore net8.0 (with Coverage)
run: |
- dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj --configuration Debug -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-efcore.xml
+ dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.Tests.Net8/System.Linq.Dynamic.Core.Tests.Net8.csproj --configuration Debug --framework net8.0 -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-efcore.xml
- name: End analysis on SonarCloud
if: ${{ steps.secret-check.outputs.run_analysis == 'true' }}
run: |
dotnet sonarscanner end /d:sonar.token=${{ secrets.SONAR_TOKEN }}
+ # - name: Run Tests EFCore net8.0
+ # run: |
+ # dotnet test ./test/System.Linq.Dynamic.Core.Tests.Net7/System.Linq.Dynamic.Core.Tests.Net8.csproj -c Release -p:buildType=azure-pipelines-ci
+ # continue-on-error: true
+
# - name: Run Tests EFCore net7.0
# run: |
# dotnet test ./test/System.Linq.Dynamic.Core.Tests.Net7/System.Linq.Dynamic.Core.Tests.Net7.csproj -c Release -p:buildType=azure-pipelines-ci
diff --git a/README.md b/README.md
index 62471fb6..a98b97c7 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ If it's not possible to add that attribute, you need to implement a custom [Cust
The following frameworks are supported:
- net35, net40, net45, net46 and up
- netstandard1.3, netstandard2.0 and netstandard2.1
-- netcoreapp3.1, net5.0, net6.0, net7.0 and net8.0
+- netcoreapp3.1, net5.0, net6.0, net7.0, net8.0 and net9.0
- uap10.0
### Fork details
diff --git a/System.Linq.Dynamic.Core.sln b/System.Linq.Dynamic.Core.sln
index 3e56b2bb..38874017 100644
--- a/System.Linq.Dynamic.Core.sln
+++ b/System.Linq.Dynamic.Core.sln
@@ -147,6 +147,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WasmDynamicLinq", "src-blaz
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SldcTrimmer", "src-examples\SldcTrimmer\SldcTrimmer.csproj", "{7A31366C-DD98-41A3-A0C1-A97068BD9658}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9", "src\Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9\Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj", "{C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Linq.Dynamic.Core.Tests.Net8", "test\System.Linq.Dynamic.Core.Tests.Net8\System.Linq.Dynamic.Core.Tests.Net8.csproj", "{CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -931,6 +935,38 @@ Global
{7A31366C-DD98-41A3-A0C1-A97068BD9658}.Release|x64.Build.0 = Release|Any CPU
{7A31366C-DD98-41A3-A0C1-A97068BD9658}.Release|x86.ActiveCfg = Release|Any CPU
{7A31366C-DD98-41A3-A0C1-A97068BD9658}.Release|x86.Build.0 = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|x64.Build.0 = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Debug|x86.Build.0 = Debug|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|ARM.Build.0 = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|x64.ActiveCfg = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|x64.Build.0 = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|x86.ActiveCfg = Release|Any CPU
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}.Release|x86.Build.0 = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|x64.Build.0 = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Debug|x86.Build.0 = Debug|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|ARM.Build.0 = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|x64.ActiveCfg = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|x64.Build.0 = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|x86.ActiveCfg = Release|Any CPU
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -984,6 +1020,8 @@ Global
{7AFC2836-0F6E-4B0D-8BB3-13317A3B6616} = {8463ED7E-69FB-49AE-85CF-0791AFD98E38}
{2DE2052F-0A50-40C7-B6FF-52B52386BF9A} = {122BC4FA-7563-4E35-9D17-077F16F1629F}
{7A31366C-DD98-41A3-A0C1-A97068BD9658} = {BCA2A024-9032-4E56-A6C4-17A15D921728}
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F}
+ {CEBE3A33-4814-42A4-BD8E-F7F2308A4C8C} = {8463ED7E-69FB-49AE-85CF-0791AFD98E38}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {94C56722-194E-4B8B-BC23-B3F754E89A20}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e34f3e2a..98d4a049 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -25,4 +25,8 @@
+
+
+
+
diff --git a/src/EntityFramework.DynamicLinq/EntityFramework.DynamicLinq.csproj b/src/EntityFramework.DynamicLinq/EntityFramework.DynamicLinq.csproj
index 86ce81f5..0c00f138 100644
--- a/src/EntityFramework.DynamicLinq/EntityFramework.DynamicLinq.csproj
+++ b/src/EntityFramework.DynamicLinq/EntityFramework.DynamicLinq.csproj
@@ -34,10 +34,6 @@
-
-
-
-
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj
index ab33c804..de9eeb25 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj
@@ -39,7 +39,6 @@
-
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj
index 079df86d..2bcd8939 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj
@@ -41,8 +41,7 @@
-
-
+
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj
index 3ebb20a0..81de2b2b 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj
@@ -42,7 +42,6 @@
-
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj
index 35a45080..461e0d09 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj
@@ -42,7 +42,6 @@
-
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj
index 1adfb181..7c624aa8 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj
@@ -42,7 +42,6 @@
-
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj
index 93d40e5c..944a6a3a 100644
--- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj
@@ -42,7 +42,6 @@
-
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj
new file mode 100644
index 00000000..d1ab7b60
--- /dev/null
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Microsoft.EntityFrameworkCore.DynamicLinq
+ ../Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.snk
+ Microsoft.EntityFrameworkCore.DynamicLinq
+ $(DefineConstants);EFCORE;EFCORE_3X;EFDYNAMICFUNCTIONS;ASYNCENUMERABLE
+ Dynamic Linq extensions for Microsoft.EntityFrameworkCore which adds Async support
+ system;linq;dynamic;entityframework;core;async
+ {C774DAE7-54A0-4FCD-A3B7-3CB63D7E112D}
+ net9.0
+ 9.4.$(PatchVersion)
+
+
+
+ full
+
+
+
+
+ portable
+ true
+
+
+
+ net9.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Properties/AssemblyInfo.cs b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..d827f27c
--- /dev/null
+++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Properties/AssemblyInfo.cs
@@ -0,0 +1,6 @@
+using System.Runtime.InteropServices;
+
+[assembly: ComVisible(false)]
+#if !(NETSTANDARD2_1)
+[assembly: Guid("b467c675-c014-4b55-85b9-9578941d2ef7")]
+#endif
diff --git a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj
index 94563ed7..38614f99 100644
--- a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj
+++ b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj
@@ -9,7 +9,7 @@
This is a .NETStandard / .NET Core port of the the Microsoft assembly for the .Net 4.0 Dynamic language functionality.
system;linq;dynamic;core;dotnet;NETCoreApp;NETStandard
{D3804228-91F4-4502-9595-39584E510002}
- net35;net40;net45;net452;net46;netstandard1.3;netstandard2.0;netstandard2.1;uap10.0;netcoreapp2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0
+ net35;net40;net45;net452;net46;netstandard1.3;netstandard2.0;netstandard2.1;uap10.0;netcoreapp2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0
1.4.$(PatchVersion)
@@ -59,10 +59,6 @@
-
-
-
-
1.1.1
diff --git a/src/Z.EntityFramework.Classic.DynamicLinq/Z.EntityFramework.Classic.DynamicLinq.csproj b/src/Z.EntityFramework.Classic.DynamicLinq/Z.EntityFramework.Classic.DynamicLinq.csproj
index 9d648273..cc09bdda 100644
--- a/src/Z.EntityFramework.Classic.DynamicLinq/Z.EntityFramework.Classic.DynamicLinq.csproj
+++ b/src/Z.EntityFramework.Classic.DynamicLinq/Z.EntityFramework.Classic.DynamicLinq.csproj
@@ -35,7 +35,6 @@
-
\ No newline at end of file
diff --git a/test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj b/test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj
index 5fbdc64f..99ea5f00 100644
--- a/test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj
+++ b/test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj
@@ -2,7 +2,7 @@
Stef Heyenrath
- net461;net8.0
+ net461;net8.0;net9.0
full
EF;NET461
EntityFramework.DynamicLinq.Tests
@@ -68,10 +68,15 @@
-
+
-
+
+
+
+
+
+
$(DefineConstants);AspNetCoreIdentity
diff --git a/test/System.Linq.Dynamic.Core.Tests.Net5/System.Linq.Dynamic.Core.Tests.Net5.csproj b/test/System.Linq.Dynamic.Core.Tests.Net5/System.Linq.Dynamic.Core.Tests.Net5.csproj
index 09f19012..30982ea6 100644
--- a/test/System.Linq.Dynamic.Core.Tests.Net5/System.Linq.Dynamic.Core.Tests.Net5.csproj
+++ b/test/System.Linq.Dynamic.Core.Tests.Net5/System.Linq.Dynamic.Core.Tests.Net5.csproj
@@ -9,6 +9,7 @@
../../src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.snk
false
$(DefineConstants);NETCOREAPP;EFCORE;EFCORE_3X;NETCOREAPP3_1;AspNetCoreIdentity
+ latest
diff --git a/test/System.Linq.Dynamic.Core.Tests.Net8/System.Linq.Dynamic.Core.Tests.Net8.csproj b/test/System.Linq.Dynamic.Core.Tests.Net8/System.Linq.Dynamic.Core.Tests.Net8.csproj
new file mode 100644
index 00000000..70f8673d
--- /dev/null
+++ b/test/System.Linq.Dynamic.Core.Tests.Net8/System.Linq.Dynamic.Core.Tests.Net8.csproj
@@ -0,0 +1,57 @@
+
+
+
+ net8.0
+ System.Linq.Dynamic.Core.Tests
+ full
+ True
+ ../../src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.snk
+ false
+ $(DefineConstants);NETCOREAPP;EFCORE;EFCORE_3X;NETCOREAPP3_1;AspNetCoreIdentity
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj b/test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj
index 2c8cf836..38afc4a0 100644
--- a/test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj
+++ b/test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
System.Linq.Dynamic.Core.Tests
full
True
@@ -30,15 +30,15 @@
-
-
-
-
-
+
+
+
+
+
-
+
\ No newline at end of file