簡體   English   中英

Linq select為兩個嵌套對象之一返回null

[英]Linq select returns null for one of two nested objects

我有一個Linq select語句,它應該返回有2個嵌套對象的對象。 問題是,其中一個嵌套對象返回null而另一個正在按預期工作。

這是被查詢的對象:

public class CharInvCard
{
    public int ID { get; set; }
    public Character Character { get; set; }
    public Card Card { get; set; }
    public bool inDeck { get; set; }
    public bool inHand { get; set; }
    public bool inDiscard { get; set; }
}

這是我的Linq查詢:

IQueryable<CharInvCard> CardsInHand = from x in db.CharInvCards
                               where x.Character.ID == character.ID && x.inHand == true
                               select x;

獲得此查詢的結果后,我執行一個foreach循環,如下所示:

foreach (CharInvCard deckCardRec in CardsInHand)

在調試時,如果我檢查deckCardRec的內容,我看到它具有ID,inHand,inDeck,inDiscard甚至嵌套的Character對象(及其屬性)的所有屬性,但Card始終為null。

我已經檢查並仔細檢查了我的數據庫中的Card_Id列是否填充了與Card表對應的正確ID。

什么導致Card嵌套對象返回null,而Character嵌套對象要正確返回?

您在linq查詢中引用了Character ,因此它包含在內。 你沒有引用Card 嘗試急切加載Cards如下:

IQueryable<CharInvCard> CardsInHand = from x in db.CharInvCards.Include("Cards")
                               where x.Character.ID == character.ID && x.inHand == true
                               select x;

我假設您的導航屬性在上面被命名為“卡片”。

暫無
暫無

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

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