2014-04-02 21 views

回答

0

您可以通過從ObjectStateManger查詢EntityKey小號拿到實體的鍵值。在EF4(假設你有一個ObjectContext)它是這樣的:

foreach (var ek in context.ObjectStateManager 
      .GetObjectStateEntries(System.Data.EntityState.Unchanged) 
      .Select(objectStateEntry => objectStateEntry.EntityKey)) 
{ 
    System.Data.EntityKeyMember[] keys = ek.EntityKeyValues; 
    // Do something with keys 
} 

在EF6(與DbContext)這就像這樣做:

var oc = ((IObjectContextAdapter)context).ObjectContext; 
foreach (var ek in oc.ObjectStateManager 
      .GetObjectStateEntries(System.Data.Entity.EntityState.Unchanged) 
      .Select(objectStateEntry => objectStateEntry.EntityKey)) 
{ 
    System.Data.Entity.Core.EntityKeyMember[] keys = ek.EntityKeyValues; 
    // Do something with keys 
} 

這將讓實體的鍵值即已經加載到上下文中。