1
如何achive相同的結果:如何添加的SelectMany一個表達式樹Expression.Call
var q = db.TableA.AsQueryable();
var q1 = Queryable.SelectMany(q, a => a.TableB, (a, t) => new { a = a, t = t });
var q2 = Queryable.SelectMany(q1, a=> a.a.TableC, (a, t) = new { a = a, t = t });
經由Expression.Call創建一個表達式樹:
MethodCallExpression returnCallExpression = Expression.Call(
typeof(Queryable),
"SelectMany",
new Type[] ??????,
query.Expression,
a => a.TableB,
(a, t) => new { a = a, t = t });
我在調查Expression.Call的其他重載,看看這是否可以在沒有聲明類型的情況下實現。
我的問題是SelectManys的數量是在運行時確定的,所以我不能鏈接它們。並且每個SelectMany都會更改IQueryable的匿名類型,所以我在編譯時無法獲知該類型。
有關如何將n個SelectMany應用於IQueryable的任何想法都非常感謝。