To use JOIN or UNION



我正在支持一个遗留应用程序,它的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个查询吗?注意,这两个查询之间的唯一区别是WHERE子句。这会带来任何性能改进吗?

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

谢谢Parameswaran

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

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

最新更新