实体框架返回NULL链接对象C#

时间:2016-06-13 12:49:49

标签: c# entity-framework

我在我的程序中使用Entity Framework,当一个记录从表中移除时,我遇到了一个问题,表链接的对象变为NULL。

而不是做

waitTravel = db.WaitTravels 
               .Where(w => w.suggestTravelId == suggestTravelId &&
                           w.wantedTravelId == wantedTravelId)
               .First();

if (waitTravel.WantedTravels.statusTravelId != 1)

我应该这样做:

 if (db.WantedTravels.Where(w => w.id == waitTravel.wantedTravelId).First().statusTravelId != 1)

知道有什么可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我相信你问的是为什么waitTravel.WantedTravels语句中if为空。这是因为您缺少include语句,并且您没有启用延迟加载。

有关如何完成此操作的其他选项,请参阅Loading Related Entities上的EF文档。最简单的IMO最好的方法是在您知道要检索相关属性/集合时明确使用Include

waitTravel = db.WaitTravels 
               .Where(w => w.suggestTravelId == suggestTravelId &&
                           w.wantedTravelId == wantedTravelId)
               .Include(w => w.WantedTravels) // added
               .First();

如果这不是您要求的,请澄清您的问题。

相关问题