【问题标题】:dynamic Linq queries with Entity Framework使用实体框架进行动态 Linq 查询
【发布时间】:2010-10-21 00:21:21
【问题描述】:

我知道动态构建 Linq 查询的努力很少,例如 thisthis

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


    【解决方案1】:

    为了省略 Where 原因(伪代码,希望我正确理解了您的问题):

    var query = IQueryable<Foo>();
    
    if(someCondition)
        query = query.Where(......);
    
    var result = query.Select(.......);
    

    对于动态查询 - 我还没有听说过任何新内容。恕我直言,我们将不得不继续使用字符串。你能想出一些更好的方法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      相关资源
      最近更新 更多