2 つのネストされたオブジェクトを持つオブジェクトを返すことになっている Linq select ステートメントがあります。問題は、ネストされたオブジェクトの 1 つが null を返し、もう 1 つが意図したとおりに機能していることです。
クエリ対象のオブジェクトは次のとおりです。
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 が入力されていることを確認し、再確認しました。
Character のネストされたオブジェクトが正しく返されるのに、Card のネストされたオブジェクトが null として返される原因は何ですか?