我有ObjectContext和实体,我们称之为Device。 实体的实体密钥不是自动生成的,并且在添加到上下文期间指定。 添加具有以下代码的新实体后
Context.Devices.Add(new Device{Id = someVal, /*initialization*/});
我正在尝试阅读该实体
var dev = Context.Devices.SingleOrDefault(d => d.Id == someVal);
并获得null。
当然,在调用SaveChanges()之后,我可以从DB中读取该设备。
为什么我无法从上下文中读取实体?
答案 0 :(得分:2)
因为在调用SaveChanges之前,它实际上并不存在于数据库中。您对Context.Devices.SingleOrDefault(d => d.Id == someVal);
的呼叫正在回拨数据库。