我有一个 Linq 选择语句,它应该返回具有 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 始终为空。
我已经检查并仔细检查了数据库中的 Card_Id 列是否填充了与 Card 表对应的正确 ID。
是什么导致 Card 嵌套对象返回为 null 而 Character 嵌套对象正确返回?