Skip to content

Commit 2e2038d

Browse files
authored
Fix DynamicQueryableExtensions for .NET 6 (#535)
* wip * fix * MethodFinder * version
1 parent 81df357 commit 2e2038d

7 files changed

Lines changed: 177 additions & 88 deletions

File tree

System.Linq.Dynamic.Core.sln

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.EntityFrameworkCo
112112
EndProject
113113
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp_net5.0_EF6_InMemory", "src-console\ConsoleAppEF6_InMemory\ConsoleApp_net5.0_EF6_InMemory.csproj", "{4CC563F6-5352-4A77-A8C0-DC0D77A71DBB}"
114114
EndProject
115+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp_net6.0", "src-console\ConsoleApp_net6.0\ConsoleApp_net6.0.csproj", "{C206917D-6E90-4A31-8533-AF2DD68FF738}"
116+
EndProject
115117
Global
116118
GlobalSection(SolutionConfigurationPlatforms) = preSolution
117119
Debug|Any CPU = Debug|Any CPU
@@ -702,6 +704,22 @@ Global
702704
{4CC563F6-5352-4A77-A8C0-DC0D77A71DBB}.Release|x64.Build.0 = Release|Any CPU
703705
{4CC563F6-5352-4A77-A8C0-DC0D77A71DBB}.Release|x86.ActiveCfg = Release|Any CPU
704706
{4CC563F6-5352-4A77-A8C0-DC0D77A71DBB}.Release|x86.Build.0 = Release|Any CPU
707+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
708+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|Any CPU.Build.0 = Debug|Any CPU
709+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|ARM.ActiveCfg = Debug|Any CPU
710+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|ARM.Build.0 = Debug|Any CPU
711+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|x64.ActiveCfg = Debug|Any CPU
712+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|x64.Build.0 = Debug|Any CPU
713+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|x86.ActiveCfg = Debug|Any CPU
714+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Debug|x86.Build.0 = Debug|Any CPU
715+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|Any CPU.ActiveCfg = Release|Any CPU
716+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|Any CPU.Build.0 = Release|Any CPU
717+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|ARM.ActiveCfg = Release|Any CPU
718+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|ARM.Build.0 = Release|Any CPU
719+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|x64.ActiveCfg = Release|Any CPU
720+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|x64.Build.0 = Release|Any CPU
721+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|x86.ActiveCfg = Release|Any CPU
722+
{C206917D-6E90-4A31-8533-AF2DD68FF738}.Release|x86.Build.0 = Release|Any CPU
705723
EndGlobalSection
706724
GlobalSection(SolutionProperties) = preSolution
707725
HideSolutionNode = FALSE
@@ -742,6 +760,7 @@ Global
742760
{3DA1CE3B-D1FB-4CEC-A4A6-22495CC36655} = {122BC4FA-7563-4E35-9D17-077F16F1629F}
743761
{D28F6393-B56B-40A2-AF67-E8D669F42546} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F}
744762
{4CC563F6-5352-4A77-A8C0-DC0D77A71DBB} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
763+
{C206917D-6E90-4A31-8533-AF2DD68FF738} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
745764
EndGlobalSection
746765
GlobalSection(ExtensibilityGlobals) = postSolution
747766
SolutionGuid = {94C56722-194E-4B8B-BC23-B3F754E89A20}

src-console/ConsoleAppEF5/Program.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@ class Program
1010
{
1111
static void Main(string[] args)
1212
{
13+
var e = new int[0].AsQueryable();
14+
var q = new[] { 1 }.AsQueryable();
15+
16+
var a = q.FirstOrDefault();
17+
// var b = e.FirstOrDefault(44); only .NET 6.0
18+
19+
var c = q.FirstOrDefault(i => i == 0);
20+
// var d = q.FirstOrDefault(i => i == 0, 42); only .NET 6.0
21+
22+
int y = 0;
23+
1324
var users = new[] { new User { FirstName = "Doe" } }.AsQueryable();
1425

1526
var context = new TestContext();
@@ -102,9 +113,9 @@ static void Main(string[] args)
102113
{
103114
users.Select<User>(config, "new User(1 as FieldDoesNotExist)");
104115
}
105-
catch (Exception e)
116+
catch (Exception ex)
106117
{
107-
Console.WriteLine(e);
118+
Console.WriteLine(ex);
108119
}
109120

110121
foreach (dynamic x in users.Select("new (FirstName, string(\"a\") as StrA, string('c') as StrCh, string(\"\") as StrEmpty1, string('\0') as StrEmpty2, string(null) as StrNull)"))
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net6.0</TargetFramework>
6+
<RootNamespace>ConsoleApp_net6._0</RootNamespace>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<ProjectReference Include="..\..\src\System.Linq.Dynamic.Core\System.Linq.Dynamic.Core.csproj" />
11+
</ItemGroup>
12+
13+
</Project>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using System.Linq;
3+
using System.Linq.Dynamic.Core;
4+
5+
namespace ConsoleApp_net6._0
6+
{
7+
class Program
8+
{
9+
static void Main(string[] args)
10+
{
11+
Normal();
12+
Dynamic();
13+
14+
int y = 0;
15+
}
16+
17+
private static void Normal()
18+
{
19+
var e = new int[0].AsQueryable();
20+
var q = new[] { 1 }.AsQueryable();
21+
22+
var a = q.FirstOrDefault();
23+
var b = e.FirstOrDefault(44);
24+
25+
var c = q.FirstOrDefault(i => i == 0);
26+
var d = q.FirstOrDefault(i => i == 0, 42);
27+
28+
var t = q.Take(1);
29+
}
30+
31+
private static void Dynamic()
32+
{
33+
var e = new int[0].AsQueryable() as IQueryable;
34+
var q = new[] { 1 }.AsQueryable() as IQueryable;
35+
36+
var a = q.FirstOrDefault();
37+
//var b = e.FirstOrDefault(44);
38+
39+
var c = q.FirstOrDefault("it == 0");
40+
//var d = q.FirstOrDefault(i => i == 0, 42);
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)