解决方法
您需要将DbContext转换为IObjectContextAdapter,以便您可以访问底层的ObjectContext,从而可以访问DbContext隐藏的一些更高级的功能.
在你的类中引导DbContext,下面的方法将会起作用.
object GetPrimaryKeyValue(DbEntityEntry entry) { var objectStateEntry = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity); return objectStateEntry.EntityKey.EntityKeyValues[0].Value; }
如果有多个键,那么您应该遍历EntityKeyValues属性.