[英]Entity framework does not return null
我在這里有點困惑。 如果我的查詢未返回任何內容,為什么優惠券不為null? 我應該如何檢查null?
Coupon coupon;
using (var db = new KupongEntities())
{
coupon = (from p in db.Coupon
where p.CouponID == 123
select p).SingleOrDefault();
}
if (coupon != null)
{
//test
}
如果我的查詢未返回任何內容,為什么優惠券不為null?
您的問題令人困惑。 您是在說您正在執行該查詢並且沒有得到null
值,盡管您認為應該沒有結果? 然后發生三件事之一:
null
是錯誤的。 Coupon
是一種結構。 我會給您帶來疑問的好處,並假定不是1.和2.。 在最后一種情況下, coupon
將收到Coupon
實例的默認值。 結構的默認值是將結構的所有字段都設置為其默認值的值。 在這種情況下,您應該說
if(coupon != default(Coupon)) {
}
但是,您會遇到一個令人討厭的問題,即Coupon
的默認實例可能仍然是數據庫中的有效條目。 如果我是你,我會重新考慮將Coupon
做成一個結構。
我應該如何檢查null?
好吧,如果Coupon
是參考類型,那么您所擁有的完全可以。 如果Coupon
是一個struct,請按照上面的說明進行檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.