zam*_*tex 5 c# linq entity-framework iqueryable
如果我使用 LINQ to Objects,我可以Func<TIn, TOut>在 Select 中使用,如下所示:
Enumerable.Range(1, 10).Select(x => new { A = x, B = SomeFunc });
Run Code Online (Sandbox Code Playgroud)
哪里SomeFunc有这样的东西:
Func<int, long> SomeFunc = x => x * x;
Run Code Online (Sandbox Code Playgroud)
但是使用 LINQ to Entities、Func 不起作用,我必须使用表达式。并且这段代码不起作用:
var query = Enumerable.Range(1, 10)
.AsQueryable()
.Select(x => new { A = x, B = SomeExpr });
Run Code Online (Sandbox Code Playgroud)
哪里SomeExpr有这样的东西:
Expression<Func<int, long>> SomeExpr = x => x * x;
Run Code Online (Sandbox Code Playgroud)
如何在查询中使用 Select 中的表达式?
问题是 x => new {...} 已经是您作为参数传递给 Select(...) 的表达式。如果您将 SomeExpr 编译并调用到 select 表达式中,您的代码将起作用。
Expression<Func<int, long>> SomeExpr = x => x * x;
var query = Enumerable.Range(1, 10)
.AsQueryable()
.Select(x => new { A = x, B = SomeExpr.Compile().Invoke(x) });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |