基于实体框架的动态Linq查询
我知道动态构造Linq查询的工作很少,例如,和 似乎没有一个是理想的,因为我希望避免将表达式放入字符串中,如果不需要,则省略where 我主要关心的是,查询针对数据库进行了优化,并尽可能动态地省略不必要的子句 EF 4.0中是否有针对此类场景的新开发 更新 以下是一个我发现非常有用的链接: 实际上,动态添加“和”过滤器非常简单,使用谓词生成器可以轻松地添加“或”过滤器:基于实体框架的动态Linq查询,linq,entity-framework,optimization,dynamic,dynamic-data,Linq,Entity Framework,Optimization,Dynamic,Dynamic Data,我知道动态构造Linq查询的工作很少,例如,和 似乎没有一个是理想的,因为我希望避免将表达式放入字符串中,如果不需要,则省略where 我主要关心的是,查询针对数据库进行了优化,并尽可能动态地省略不必要的子句 EF 4.0中是否有针对此类场景的新开发 更新 以下是一个我发现非常有用的链接: 实际上,动态添加“和”过滤器非常简单,使用谓词生成器可以轻松地添加“或”过滤器: var predicate = PredicateBuilder.False<Product>(); predic
var predicate = PredicateBuilder.False<Product>();
predicate = predicate.Or (p => p.Description.Contains (temp));
var predicate=PredicateBuilder.False();
谓词=谓词。或(p=>p.Description.Contains(temp));
根据LinqPad,sql会根据应用的过滤器发出 省略Where原因(伪代码,希望我正确理解了您的问题):
var query=IQueryable();
如果(某些条件)
query=query.Where(……);
var result=query.Select(……);
对于动态查询,我没有听说过任何新的东西。依我看,我们将不得不坚持下去。你能想出更好的办法吗
var query = IQueryable<Foo>();
if(someCondition)
query = query.Where(......);
var result = query.Select(.......);