在下文GetByExpression中,有時r.branchid是null。如何在其中添加條件,以便它使用不同的欄位 ( r.Invoice.Branch.Id) 來檢查 when r.branchidis null?
var t = receiptRepo
.GetByExpression(r => r.BranchId == branchId)
.Where(r => r.Date == selectedDate && r.BatchId == null)
.ToList();
uj5u.com熱心網友回復:
使用三元運算
(r.BranchId != null? r.BranchId:r.Invoice.Branch.Id ) == branchId //or whatever you want to compare
uj5u.com熱心網友回復:
您可以嘗試使用空合并運算子??:
r => (r.BranchId ?? r.Invoice.BranchId) == branchId
這里 ifr.BranchId是null我們r.Invoice.BranchId用來比較的branchId。請注意,我們可以鏈接 ??運算子,例如
r => (r.BranchId ?? r.Invoice.BranchId ?? r.Bill.BranchId) == branchId
我們嘗試BranchId如果是null,我們看看,r.Invoice.BranchId如果是,null我們得到r.Bill.BranchId等等。
您的 Linq 查詢可以是
var t = receiptRepo
.GetByExpression(r => (r.BranchId ?? r.Invoice.BranchId) == branchId)
.Where(r => r.Date == selectedDate && r.BatchId == null)
.ToList();
uj5u.com熱心網友回復:
你可以這樣做:
var t = receiptRepo
.GetByExpression(r => (r?.BranchId ?? r.Invoice.BranchId) == branchId)
.Where(r => r.Date == selectedDate && r.BatchId == null)
.ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466472.html
