[英]How to check if object is null in EF
我是EF的新手,正在嘗試使用它做一個小項目。 我向EF添加了條件,但遇到了問題。 我的條件全都涉及IN條件,例如SQL, SELECT * FROM table1 WHERE col1 IN (1,2,3...)
這是我的EF。
var res3 = res2.Where(l => !slitDetail
.Any(s => s.BlockId == l.Id
&& s.WarehouseDepot.WarehouseDepotName != "Ara Ürün Depo"
&& s.WarehouseDepot.WarehouseDepotName != "Özel Kesim Depo"));
s.WarehouseDepot
有時可能為NULL,這很正常,但如果為null,則此查詢將引發異常。
如何檢查s.WarehouseDepot
是否為空,即使它為空,也可以正常工作?
如果s.WarehouseDepot == null
則有2種s.WarehouseDepot == null
1)您希望您的Any
返回true
,在這種情況下,您可以使用類似
var res3 = res2.Where(l => !slitDetail
.Any(s => s.BlockId == l.Id
&& s.WarehouseDepot != null
? (s.WarehouseDepot.WarehouseDepotName != "Ara Ürün Depo" && s.WarehouseDepot.WarehouseDepotName != "Özel Kesim Depo")
: true));
僅當它具有值時,才使用s.WarehouseDepot
否則將返回true
2)您希望您的Any
返回false
。 在這種情況下,您可以在上述表達式中將true
替換為false
或使用類似
var res3 = res2.Where(l => !slitDetail
.Any(s => s.BlockId == l.Id
&& s.WarehouseDepot != null
&& s.WarehouseDepot.WarehouseDepotName != "Ara Ürün Depo"
&& s.WarehouseDepot.WarehouseDepotName != "Özel Kesim Depo"));
請注意,這兩個結果也會自動考慮s.BlockId == l.Id
條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.