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