提问人:Farhan Patel 提问时间:8/21/2023 更新时间:8/21/2023 访问量:37
我想在BarcodePost上执行左外连接
I want to Perform Left Outer Join on BarcodePost
问:
在这里,我想在LINQ中的BarcodePost上执行左外连接,我使用了defaultIfEmpty(),但它没有返回预期的结果。
var result = (from data in _dbContext.MaterialInwardBarcodes
join material in _dbContext.MaterialInwardDetails on data.ProductId equals material.ProductId
join prod in _dbContext.Products on data.ProductId equals prod.Id
join vendor in _dbContext.Vendors on data.VendorId equals vendor.Id
join barcode in _dbContext.BarcodePost on data.Barcode equals barcode.BarcodeNumber into barcodeGroup
from barcode in barcodeGroup.DefaultIfEmpty()
where material.MaterialInwardHeaderId == data.RefId && material.Quantity - barcode.Quantity > 0
where data.Date <= date && data.VendorId == vendorId
select new VendorWiseStock()
{
VendorName = vendor.Name,
ProductId = prod.Id,
CurrentStock = material.Quantity - barcode.Quantity
}).ToListAsync();
join barcode in _dbContext.BarcodePost on data.Barcode equals barcode.BarcodeNumber into barcodeGroup
from barcode in barcodeGroup.DefaultIfEmpty()
在上面的代码中,我使用 defaultIfEmpty() 在条形码上使用左外连接,但它仍然返回空数据,而不是为我提供其他表的数据。这里是条形码。Quantity 可以为 null,但如果条形码,则以 null 形式提供整个数据。数量不可用,有人可以以其他方式向我提供,或者我应该在上面的代码中更改什么。
答: 暂无答案
评论
_dbContext.BarcodePost
barcode
barcode.Quantity
NullReferenceException
barcodeGroup.DefaultIfEmpty()