linq 左连接生成的sql带有or条件。看代码
linq代码:
var stockQuery = from od in db.sto_StockInOrderDetail.Where(ox => ox.DetailType == 2)
join o in db.sto_StockInOrder.Where(x => x.BusinessBillID == "305" && x.State == 200) on od.StockInID equals o.StockInID
select new { ProductID =od.ProductID, StockInID =o.StockInID, SupplierID =o.SupplierID};
var querydata = from q in query.Where(xq=>xq.ProductID !="")
join b in stockQuery.Distinct() on q.ProductID equals b.ProductID
into temp
from tempD in temp.DefaultIfEmpty()
join s in db.core_Good on q.SKU equals s.SKU
select new { record = q,good = s,sup = tempD.SupplierID, PurchaseCode = tempD.StockInID };
跟踪出来的sql:

怎么会多个or条件呢?有这个。导致sql查询很慢。去掉这个or,查询就很快出来的!
求大神指点,怎么让左连接不生成这个or条件。
var stockQuery = from od in db.sto_StockInOrderDetail.Where(ox => ox.DetailType == 2)
join o in db.sto_StockInOrder.Where(x => x.BusinessBillID == "305" && x.State == 200) on od.StockInID equals o.StockInID
select new { ProductID =od.ProductID, StockInID =o.StockInID, SupplierID =o.SupplierID};
var querydata = from q in query.Where(xq=>xq.ProductID !="")
join b in stockQuery.Distinct() on q.ProductID equals b.ProductID
into temp
from tempD in temp.DefaultIfEmpty()
join s in db.core_Good on q.SKU equals s.SKU
select new { record = q,good = s,sup = tempD.SupplierID, PurchaseCode = tempD.StockInID };
跟踪出来的sql:

怎么会多个or条件呢?有这个。导致sql查询很慢。去掉这个or,查询就很快出来的!
求大神指点,怎么让左连接不生成这个or条件。
...全文
相关推荐
查看LINQ生成SQL语句的几种方法
查看LINQ生成SQL语句的几种方法,对应的说明文件及dll文件在压缩包中
浅谈Linq to sql 的多表关联与动态条件查询
浅谈Linq to sql 的多表关联与动态条件查询
Linq 将生成SQL语句显示出来
Linq 将生成SQL语句显示出来 用于检查linq解析出来的sql语句。 很适合新手学习
vs中用DbLinq 生成MySql的Linq to SQL实例
微软的Linq to SQL只支持Sql Server,这里是用DbLinq 生成MySql的Linq to SQL实例。做了个bat文件,一键搞定。具体运用有详细说明和调用文件。
Linq To Sql+ADO 代码生成器
Linq To Sql+ADO 代码生成器 减少代码编写 提高开发效率 减少出错几率


LINQ
