【发布时间】:2013-09-28 11:34:36
【问题描述】:
在 DF 4 vs 2010 上工作。面对 SalSalesOrderDetail 与 SalSalesOrderFinancial 表的连接问题。
在 SalSalesOrderFinancial 中,一条记录的 SalesOrderDetailID=null。想要获取那些 SalesOrderDetailID 不存在于 SalSalesOrderFinancial 中的记录。
要获得所需的输出,请编写下面的 linq 语法,它正在工作。寻找更好的连接语法。有没有办法在一次连接中获得所需。
var tempBDwithSODetail = (from p in this.Context.SalSalesOrderFinancials
where p.SalesOrderDetailID != null
select p.SalesOrderDetailID).AsEnumerable();
var tempBDwithOutSODetail = (from p in this.Context.SalSalesOrderFinancials where p.SalesOrderDetailID == null select p).AsEnumerable();
var querySOD = (this.Context.SalSalesOrderDetails.Where(item => !tempBDwithSODetail.Contains(item.SalesOrderDetailID))).AsEnumerable();
var tempBDetail = (from p in querySOD
join q in tempBDwithOutSODetail on p.SalesOrderID equals q.SalesOrderID
where q.SalesOrderDetailID == null
select new
{
q.SalesOrderID,
p.SalesOrderDetailID,
q.CurrencyID,
q.BillingPolicyID,
q.BillTypeID,
q.BillingTypeID
}).AsEnumerable();
如有任何疑问,请询问。在此致谢。
【问题讨论】:
标签: linq entity-framework join