【问题标题】:To use JOIN or UNION使用 JOIN 或 UNION
【发布时间】:2014-06-13 13:25:34
【问题描述】:

我支持一个旧版应用程序,它有一个 LINQ 代码,如下所示:

query1 = (from s in DBContext.Table_A JOIN DBCOntext.Table_B ON A.ID=B.ID 
where a.SUPERVISOR = '9999' Select new ClassA {....}

query2 = (from s in DBContext.Table_A JOIN DBCOntext.Table_B ON A.ID=B/ID 
where a.APPROVER = '1111'  Select new ClassA {....}

query1.join(query2).ToList()

我的问题是可以使用JOIN 将上述 2 个查询合并为 1 个查询。请注意,这 2 个查询之间的唯一区别是 WHERE 子句。 这会带来任何性能提升吗?

需要注意的是,这里使用的所有实体都是视图。

谢谢 参数化

【问题讨论】:

    标签: entity-framework-4.1


    【解决方案1】:

    确定的唯一方法是测试,因为很难知道 LINQ 可能使用哪些优化。 在我个人看来,将它们组合起来会更有效(除非 LINQ 将其作为引擎盖下的优化),因为您只需遍历表一次(而不是两次)。 您的 where 子句可以重写为:

    where a.SUPERVISOR='9999' or a.APPROVER='1111'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2011-09-29
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多