Kor*_*ius 15 c# entity-framework-4.1
有这样的方法吗?
object GetPrimaryKeyValue(DbEntityEntry entry);
Run Code Online (Sandbox Code Playgroud)
或者应该如何实施?
dan*_*dan 30
您需要转换DbContext为IObjectContextAdapter您可以访问底层ObjectContext,这样您就可以访问隐藏的一些更高级的功能DbContext.
在您的类中,派生DbContext以下方法将起作用.
object GetPrimaryKeyValue(DbEntityEntry entry)
{
var objectStateEntry = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity);
return objectStateEntry.EntityKey.EntityKeyValues[0].Value;
}
Run Code Online (Sandbox Code Playgroud)
如果有多个键,则应迭代该EntityKeyValues属性.