我在我的程序中使用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)
知道有什么可以帮助我吗?
答案 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();
如果这不是您要求的,请澄清您的问题。