3

我已经编写了如下测试代码:

Entities db = new Entities();

var place = new Place
                {
                    Id = Guid.NewGuid(),
                    Name = "test",
                    Address = "address"
                };

db.Places.Add(place);

var cachedPlace = db.Places.Where(x => x.Id == place.Id).FirstOrDefault(); \\ null

我预计 dbset 将返回添加的实体。但它只有在将更改保存到真实数据库后才给我对象。

4

1 回答 1

3

如果要访问未保存的查询,则使用 DbSet 的 Local 属性。

它不能按您想要的方式工作的原因是它还必须支持自动编号的身份,这意味着 ID 为 0。如果您插入多条记录,您将拥有多个具有相同 0 ID 的对象。EF 在保存之前不会知道真实 ID 是什么。

于 2012-11-14T15:49:54.210 回答