Linq-左联接的正确格式
本文关键字:格式 Linq- | 更新日期: 2023-09-27 18:24:21
我是linq的新手。。。我想知道我做得对不对。。
这是我的密码。。。
var result = from a in ctx.ItemReceipts
join b in ctx.ItemReceiptStatusTypes on a.Status equals b.ItemReceiptStatusTypeID
join c in ctx.PurchaseOrders on a.ReferenceID equals c.PurchaseOrderID
into leftJoinItemReceipts
from d in leftJoinItemReceipts.DefaultIfEmpty()
where a.ItemReceiptID.Equals(ItemReceiptID)
select new
{
CItemReceiptID = a.ItemReceiptID,
CTransactionNumber = a.TransactionNumber,
CRemarks = a.Remarks,
CStatus = a.Status,
CStatusType = b.Description,
CReferenceID = a.ReferenceID,
CReferenceTypeID = a.ReferenceTypeID,
CTransactionDate = a.TransactionDate,
CDateReceived = a.DateReceived,
CTotalCost = a.TotalCost,
CPONumber = d.PONumber
};
它运行得很完美。。。但是我真的不懂into
的部分。。我不知道这是否真的是左联接,但给了我想要的数据。。。它给了我CCD_ 2中的所有数据,尽管它们与CCD_。。。。
我需要解释。。。比较mysql和linq。。。
from a in ctx.ItemReceipts
join b in ctx.ItemReceiptStatusTypes on a.Status equals b.ItemReceiptStatusTypeID
into leftJoinItemReceipts
from d in leftJoinItemReceipts.DefaultIfEmpty()
join c in ctx.PurchaseOrders on d.ReferenceID equals c.PurchaseOrderID
这将对ItemReceiptStatusTypes和ItemReceipt进行左联接,然后对PurchaseOrders 进行内部联接