[英]dynamic Linq queries with Entity Framework
似乎没有理想,因为我想避免将表达式放在字符串中,并省略不需要的地方。
我主要担心的是查询是针对数据库进行优化的,并且尽可能动态地省略不必要的子句。
EF 4.0中是否有针对此类场景的新发展?
UPDATE
这里有一个我发现非常有用的链接: http : //www.albahari.com/nutshell/predicatebuilder.aspx确实,动态添加“And”过滤器很简单,使用谓词构建器可以轻松添加“Or”过滤器:
var predicate = PredicateBuilder.False<Product>();
predicate = predicate.Or (p => p.Description.Contains (temp));
根据LinqPad,sql会根据应用的过滤器进行相应的调整。
为了省略Where cause(伪代码,希望我能正确理解你的问题):
var query = IQueryable<Foo>();
if(someCondition)
query = query.Where(......);
var result = query.Select(.......);
对于动态查询 - 我没有听说过任何新内容。 恕我直言,我们将不得不保持弦乐。 你能想出一些更好的方法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.