2009-07-23 35 views
2

當實體被連接並更改跟蹤以及它們不是時,我會遇到一些麻煩。對不起,如果這已被問到。說我有一些像這樣的代碼:使用統計信息和實體框架實體

public MyEntity GetEntity() 
{ 
    using (var ctx = new MyObjectContext) 
    { 
     return ctx.MyEntitySet.First(); 
    } 
} 

然後,我把它叫做

var result = GetEntity(); 

應導致連接或從上下文中分離?

我的印象是,當ObjectContext被處置時,實體失去了它的變更跟蹤。或者上下文從來沒有被處置。

回答

0

對象的附件與我理解的上下文沒有直接關係。我相信,如果實體鍵已設置,則它仍然連接。您可以分離對象,但必須使用Detach方法手動執行此操作。

如果您在分離的對象之後嘗試手動分離它。否則,您所做的事情應該允許您更新對象並保存更改,而無需重新附加對象。

乾杯

1

如果你寫的代碼,而ctx已被釋放,因爲你不分離從ctx實體則無法將其連接到另一個環境。實質上,從實體到ctx仍然有一個反向指示器,從而避免了這種情況的發生。

我想你可以說它是'僞連接'。

希望這有助於

Alex James

項目經理實體框架團隊