【发布时间】:2016-03-21 13:08:56
【问题描述】:
我尝试使用 EF 的 ChangeTracker 进行审核并保存数据库中的所有更改(添加 + 更新)。
所以使用ChangeTracker 我将能够获取所有更改的表,以及每个表的所有值。但是我还需要新表中新记录的ID。
其中一些是关系,当我尝试用EntityKey获取值时,主键是0
private object GetPrimaryKeyValue(DbEntityEntry entry)
{
var objectStateEntry = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity);
return objectStateEntry.EntityKey.EntityKeyValues[0].Value;
}
有人知道,如果我走错路了,是否有可能获得相关实体的主键?
谢谢!
【问题讨论】:
-
我认为您需要检查您的数据库表。如果是主键,则不能为空(见stackoverflow.com/questions/3876785/…)。
-
其实我说错了,不是null而是0。主键是表中自增字段。
标签: c# .net entity-framework audit