![](/img/trans.png)
[英]How can I select one of two objects depending if one is null or not with a LinQ to Entities query.
[英]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.