Skip to content

Commit 342cdbc

Browse files
Support LINQKit query provider (#480)
1 parent 833861b commit 342cdbc

File tree

6 files changed

+27
-2
lines changed

6 files changed

+27
-2
lines changed

net/DevExtreme.AspNet.Data.Tests.EF6/Async.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ await TestDbContext.ExecAsync(async context => {
2121
await context.SaveChangesAsync();
2222

2323
await AsyncTestHelper.RunAsync(set);
24+
25+
await AsyncTestHelper.RunAsync(LinqKit.Extensions.AsExpandable(set));
2426
});
2527
}
2628

net/DevExtreme.AspNet.Data.Tests.EF6/DevExtreme.AspNet.Data.Tests.EF6.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
4040
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
4141
</Reference>
42+
<Reference Include="LinqKit.EntityFramework, Version=1.1.9.0, Culture=neutral, PublicKeyToken=b6c8cfc71f7a6a80, processorArchitecture=MSIL">
43+
<HintPath>..\packages\LinqKit.EntityFramework.1.1.9.0\lib\net45\LinqKit.EntityFramework.dll</HintPath>
44+
</Reference>
4245
<Reference Include="Microsoft.CSharp" />
4346
<Reference Include="System" />
4447
<Reference Include="System.ComponentModel.DataAnnotations" />

net/DevExtreme.AspNet.Data.Tests.EF6/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
4+
<package id="LinqKit.EntityFramework" version="1.1.9.0" targetFramework="net461" />
45
<package id="System.Data.Common" version="4.1.0" targetFramework="net461" />
56
<package id="System.Data.SqlClient" version="4.1.0" targetFramework="net461" />
67
<package id="xunit" version="2.4.1" targetFramework="net461" />

net/DevExtreme.AspNet.Data.Tests.EFCore/Async.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ await TestDbContext.ExecAsync(async context => {
2121
await context.SaveChangesAsync();
2222

2323
await AsyncTestHelper.RunAsync(set);
24+
25+
#if EFCORE5
26+
await AsyncTestHelper.RunAsync(LinqKit.Extensions.AsExpandable(set));
27+
#endif
2428
});
2529
}
2630

net/DevExtreme.AspNet.Data.Tests.EFCore5/DevExtreme.AspNet.Data.Tests.EFCore5.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9+
<PackageReference Include="LinqKit.Microsoft.EntityFrameworkCore" Version="5.0.24" />
910
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0" />
1011
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
1112
<PackageReference Include="xunit" Version="2.4.1" />

net/DevExtreme.AspNet.Data/QueryProviderInfo.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Linq;
3+
using System.Reflection;
34

45
namespace DevExtreme.AspNet.Data {
56

@@ -19,6 +20,7 @@ public QueryProviderInfo(IQueryProvider provider) {
1920
} else {
2021
var type = provider.GetType();
2122
var typeName = type.FullName;
23+
var providerAssembly = type.Assembly;
2224

2325
if(typeName == "Microsoft.Data.Entity.Query.Internal.EntityQueryProvider" || typeName == "System.Data.Entity.Internal.Linq.DbQueryProvider")
2426
IsEFClassic = true;
@@ -32,11 +34,23 @@ public QueryProviderInfo(IQueryProvider provider) {
3234
IsL2S = true;
3335
else if(typeName.StartsWith("MongoDB.Driver.Linq."))
3436
IsMongoDB = true;
37+
else if(typeName.StartsWith("LinqKit.ExpandableQueryProvider`1")) {
38+
switch(providerAssembly.GetName().Name) {
39+
case "LinqKit.Microsoft.EntityFrameworkCore":
40+
IsEFCore = true;
41+
providerAssembly = Assembly.Load("Microsoft.EntityFrameworkCore");
42+
break;
3543

36-
Version = type.Assembly.GetName().Version;
44+
case "LinqKit.EntityFramework":
45+
IsEFClassic = true;
46+
providerAssembly = Assembly.Load("EntityFramework");
47+
break;
48+
}
49+
}
50+
51+
Version = providerAssembly.GetName().Version;
3752
}
3853
}
39-
4054
}
4155

4256
}

0 commit comments

Comments
 (0)