我正在支持一个遗留应用程序,它的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'