Skip to content

Commit b0d06bf

Browse files
author
zzzprojects
committed
Fix QueryFilter missing line + First attemp to support LinqKit
Fix QueryFilter missing line + First attemp to support LinqKit
1 parent a3f3cfd commit b0d06bf

File tree

4 files changed

+31
-1
lines changed

4 files changed

+31
-1
lines changed

src/shared/Z.EF.Plus.QueryFilterInterceptor.Shared/QueryFilterInterceptorDbScanExpression.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ public DbExpression ApplyFilter(DbExpression baseExpression, string fullName)
9292
{
9393
var visitor = new QueryFilterInterceptorDbProjectExpression();
9494
visitor.DbScanExpression = baseExpression;
95+
visitor.ParameterCollection = QueryFilterManager.DbExpressionParameterByHook[expression2];
96+
9597
var filetered = expression2.Accept(visitor);
9698
baseExpression = filetered;
9799
}

src/shared/Z.EF.Plus._Core.Shared/EF5_EF6/IQueryable/IQueryable.GetObjectQuery.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,20 @@ internal static ObjectQuery GetObjectQuery(this IQueryable query)
7575
return objectQuery;
7676
}
7777

78+
// CHECK if a InnerQuery exists
79+
var innerQueryProperty = query.GetType().GetProperty("InnerQuery", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
80+
81+
if (innerQueryProperty != null)
82+
{
83+
var innerQuery = innerQueryProperty.GetValue(query, null) as IQueryable;
84+
85+
if (innerQuery != null && query != innerQuery)
86+
{
87+
var innerObjectQuery = innerQuery.GetObjectQuery();
88+
return innerObjectQuery;
89+
}
90+
}
91+
7892
throw new Exception(ExceptionMessage.GeneralException);
7993
}
8094
}

src/shared/Z.EF.Plus._Core.Shared/EF5_EF6/IQueryable`/IQueryable`.GetObjectQuery.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ internal static ObjectQuery<T> GetObjectQuery<T>(this IQueryable<T> query)
4545

4646
if (internalQueryProperty == null)
4747
{
48+
// CHECK if a InnerQuery exists
49+
var innerQueryProperty = query.GetType().GetProperty("InnerQuery", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
50+
51+
if (innerQueryProperty != null)
52+
{
53+
var innerQuery = innerQueryProperty.GetValue(query, null) as IQueryable<T>;
54+
55+
if (innerQuery != null && query != innerQuery)
56+
{
57+
var innerObjectQuery = innerQuery.GetObjectQuery();
58+
return innerObjectQuery;
59+
}
60+
}
61+
4862
throw new Exception(ExceptionMessage.GeneralException);
4963
}
5064

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.6.20
1+
v1.6.21

0 commit comments

Comments
 (0)