0
我試圖以確定是否有EF 5實體附加如下:EF 5 - 無法確定是否一個實體附加
首先這種方法被稱爲:
public bool IsAttached(object entity)
{
EntityKey entityKey = GetEntityKey(entity);
if (entityKey == null)
return false;
return IsAttached(this.AsObjectContext(), entityKey);
}
調用該方法:
public EntityKey GetEntityKey(object entity)
{
ObjectStateEntry objectStateEntry;
if (null != entity && this.AsObjectContext().ObjectStateManager.TryGetObjectStateEntry(entity, out objectStateEntry))
{
return objectStateEntry.EntityKey;
}
return null;
}
如果IsAttached()方法返回false,這種方法稱爲:
var attachedEntity = context.Set<TEntity>().Attach(entity);
我遇到的問題是IsAttached()
方法總是返回false,因爲GetEntityKey()
返回null,即使對象已經連接。即使當一個實體被連接時,IOW也不能得到實體鍵,從而導致整個事情失敗。任何人都可以看到我做錯了什麼?
我使用的是EF 5,而不是第一個代碼。
這行代碼失敗了。當我執行此操作時,它告訴我實體已分離,但是當我去附加實體時,出現錯誤,說明對象管理器中存在具有相同鍵的對象。 –
所以你有兩個不同的實體具有相同的密鑰... – qujck
可能是。你知道一個實體密鑰是如何生成的嗎? –