我使用 VS 2008 和 ado.net EF。我有两个表:
Shifts(SH_Id, WorkshopId,TabNum)
Workshops(WH_ID, WH_Name)
链接到研讨会的类次(WorkshopId -- WH_ID)我正在尝试编写查询:
var data = _Context.Shifts.Where(w => w.TabNum == 1).First();
var workshop = data.Workshops.WH_ID;
它返回 NullReferenceException。 但以下代码返回 WH_ID:
var data2 = (from o in _Context.Shifts
where o.TabNum == 1
select new
{
wh_id = o.Workshops.WH_Id
});
var workshop = data2.First().Workshops.wh_id;
为什么 data.Workshops.WH_ID 返回 NullReferenceException?
最佳答案
发生这种情况是因为 Entity Framework 没有从查询中返回附加的实体。
这对第二个示例起作用的原因是因为整个查询被转换为 SQL 并在服务器上运行。
尝试解决这个问题
var data = _Context.Shifts.Include("Workshops").Where(w => w.TabNum == 1).First();
甚至
var data = _Context.Shifts.Include("Workshops").First(w => w.TabNum == 1);
关于c# - Linq 到实体。空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456214/