我有这个linq查询,它有几个联接。我想把其中一个转换成外部连接。问题是这个查询已经有一个from子句。如何将此查询转换为在OrderCertification表上使用左联接而不是内部连接?
以下查询不起作用(导致我的应用程序崩溃):
var orderSummaries = from os in DbOrder.QueryOrderSummaries().Where(os => orders.Contains(os.OrderID))
join o in dc.ORDERs on os.OrderID equals o.OrderID
join oa in dc.ORDERADDRESSes on os.OrderID equals oa.OrderID
join d in dc.vDoctors on o.DoctorID equals d.DoctorID
join c in dc.ORDERCERTIFICATIONs on os.OrderID equals c.OrderID into oc
from certification in oc.DefaultIfEmpty()
select new BatchOrderItem {
OrderSummary = os,
Order = o,
ShipTo = oa,
Prescriber = d,
CertificationContact = certification
};发布于 2014-09-22 20:04:42
诀窍是使用DefaultIfEmpty返回第一个表中的所有行。查看下面的示例:http://msdn.microsoft.com/en-us/library/bb397895.aspx
https://stackoverflow.com/questions/25982151
复制相似问题