使用JOIN或UNION

时间:2014-06-13 13:25:35

标签: entity-framework-4.1

我支持的遗留应用程序具有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子句。 这会导致任何性能改进吗?

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

由于 Parameswaran

1 个答案:

答案 0 :(得分:0)

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

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