簡體   English   中英

實體框架不返回null

[英]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值,盡管您認為應該沒有結果? 然后發生三件事之一:

  1. 你錯了,沒有結果。
  2. 您沒有結果是正確的,但是返回的值不為null是錯誤的。
  3. Coupon是一種結構。

我會給您帶來疑問的好處,並假定不是1.和2.。 在最后一種情況下, coupon將收到Coupon實例的默認值。 結構的默認值是將結構的所有字段都設置為其默認值的值。 在這種情況下,您應該說

if(coupon != default(Coupon)) {
}

但是,您會遇到一個令人討厭的問題,即Coupon的默認實例可能仍然是數據庫中的有效條目。 如果我是你,我會重新考慮將Coupon做成一個結構。

我應該如何檢查null?

好吧,如果Coupon是參考類型,那么您所擁有的完全可以。 如果Coupon是一個struct,請按照上面的說明進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM