【发布时间】:2010-10-21 00:21:21
【问题描述】:
我知道动态构建 Linq 查询的努力很少,例如 this 和 this。
None 似乎不是理想的,因为我想避免将表达式放在字符串中,并在不需要时省略 where。
我主要关心的是查询针对数据库进行了优化,并尽可能动态地省略不必要的子句。
EF 4.0 是否有针对此类场景的新开发?
更新
这是我发现非常有用的一个链接: http://www.albahari.com/nutshell/predicatebuilder.aspx 事实上,动态添加“And”过滤器是微不足道的,使用谓词构建器可以轻松添加“Or”过滤器:
var predicate = PredicateBuilder.False<Product>();
predicate = predicate.Or (p => p.Description.Contains (temp));
根据 LinqPad,sql 会根据所应用的过滤器发出。
【问题讨论】:
标签: linq entity-framework optimization dynamic dynamic-data