1
請在EF4中找到以下代碼。EF 6 - AsNoTracking()拋出錯誤 - 一個實體對象不能被IEntityChangeTracker的多個實例引用
public IObjectSet<PositionVoyage> PositionVoyages
{
get
{
if (_positionVoyages == null)
{
var data = CreateObjectSet<PositionVoyage>("PositionVoyages");
if (NoTracking)
data.MergeOption = MergeOption.NoTracking;
else
data.MergeOption = MergeOption.OverwriteChanges;
_positionVoyages = data;
}
return _positionVoyages;
}
}
但是當我升級到EF6我下面的下面的代碼:
public IDbSet<PositionVoyage> PositionVoyages
{
get
{
if (_positionVoyages == null)
{
var data = Set<PositionVoyage>();
var query = data.AsNoTracking();
_positionVoyages = data;
}
return _positionVoyages;
}
}
在這裏,我結束了一個錯誤:
"An entity object cannot be referenced by multiple instances of IEntityChangeTracker." when it reaches below line.
Context.AttachTo(entitySetName, entity);
請幫我在這問候。
謝謝, 達摩
此異常總是意味着一個對象同時連接到多個上下文實例(如果實體是用於延遲加載或更改跟蹤的動態代理,則會引發此錯誤)。它可能意味着您從不同的上下文加載對象(或手動將它附加到不同的上下文)並將它們以某種方式關聯到單個對象圖中,或者它可能是上下文生存期管理的問題(例如,上下文未正確處理) 。但是如果沒有更多的代碼細節,就不可能完全回答。 – Slauma