在SaveChanges之后获得新增的实体?

时间:2011-12-27 21:35:01

标签: c# entity-framework entity-framework-4.1

每次添加实体时,我都有一个需要新添加的实体的主键ID的进程。我已经覆盖了SaveChanges()的{​​{1}}方法,并查看了DbContext,但我没有看到任何动态方式来检索新添加的实体。有这么好的方法吗?

2 个答案:

答案 0 :(得分:3)

查询新实体的更改跟踪器。

public override int SaveChanges()
{
    var newEntities = ChangeTracker.Entries()
                        .Where(entry => entry.State == EntityState.Added)
                        .Select(entry => entry.Entity).ToList();

    var count = base.SaveChanges();

    // do something with newEntities

    return count;
}

答案 1 :(得分:1)

您可以覆盖SaveChanges并在实际保存之前收集处于已添加状态的任何实体,但这是关于AFAIK的。