【问题标题】:Why entity framework isn't implement identity map with unit of work?为什么实体框架不使用工作单元实现身份映射?
【发布时间】:2012-11-14 15:45:17
【问题描述】:

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

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 将返回添加的实体。但它只有在将更改保存到真实数据库后才给我对象。

【问题讨论】:

    标签: c# entity-framework unit-of-work identity-map


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-01
      • 2021-08-27
      • 2017-08-30
      • 2010-10-09
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多