我在程序中使用了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)
知道有什么可以帮助我的吗?
最佳答案
我相信您要问的是为什么waitTravel.WantedTravels
语句中的if
为null。那是因为您缺少include
语句,并且没有启用延迟加载。
有关如何完成此操作的其他选项,请参见Loading Related Entities上的EF文档。最简单,也是IMO最佳方法是,当您知道要检索相关的属性/集合时,显式使用Include
。
waitTravel = db.WaitTravels
.Where(w => w.suggestTravelId == suggestTravelId &&
w.wantedTravelId == wantedTravelId)
.Include(w => w.WantedTravels) // added
.First();
如果这不是您要问的问题,请澄清您的问题。