![](/img/trans.png)
[英]Need Help Filtering A LINQ Query Using An Entity Framework Navigation Property
[英]Selecting and filtering data using Entity Framework and LINQ
假设我有以下查询:
context.Orders.Where(predicate).Select(x => new { propA = x.PropA, propB = x.PropB}).ToList();
这是在DB / ORM级别上同时执行where和select函数,仅返回同时满足两个表达式的数据,还是返回所有满足谓词的结果,然后对它们执行选择?
谢谢。
您正在使用IQueryable.Select
方法。 因此,它肯定是翻译成SQL.From的文档
Select<TSource, TResult>(IQueryable<TSource>, Expression<Func<TSource, TResult>>)
方法生成代表调用Select<TSource, TResult>(IQueryable<TSource>, Expression<Func<TSource, TResult>>
的MethodCallExpressionSelect<TSource, TResult>(IQueryable<TSource>, Expression<Func<TSource, TResult>>
)本身作为构造的泛型方法。 然后,它将MethodCallExpression传递到由源参数的Provider属性表示的IQueryProvider
的CreateQuery(Expression)
方法。
您可以使用探查器进行验证,或者尝试在Select
调用不受支持的方法,并且会收到一个异常,表明linq to entities does not recognize the method X
,这也验证了Select
是否已转换为SQL
并且未在中执行记忆。
它将同时在DB / ORM级别上执行。 仅当枚举IQueriable时才获取查询结果,例如,调用ToList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.