2013-03-04 43 views
7

我有這樣的事情:現在有沒有辦法刪除單個實體的更改跟蹤機制?

var dbTransactions = context.Transactions.Where(t => t.Date >= yesterday).Select(t => t).ToList(); 

,我想從dbTransactions列表中刪除的對象,而不是從實際的數據庫。後來我打電話給context.SaveChanges(),如果我這樣做,它會從我的數據庫中刪除行。我如何禁用更改追蹤dbTransactions

+1

http://stackoverflow.com/questions/4168073/entity-framework-code-first- no-detach-method-on-dbcontext – SLaks 2013-03-04 19:18:14

+1

從列表中刪除對象不會將它們標記爲在DbContext中被刪除。 – 2013-03-04 19:18:53

回答

9

我認爲你可以使用AsNoTracking和交易使用拆離

Youcontext.YourEntities.AsNoTracking().Where); 

或使用

Youcontext.Transactions.Detach(obj); 
+0

有沒有像POCO實體使用的[NoTracking]屬性?我們應該如何將POCO實體(在我們的案例中是查找實體)標記爲無跟蹤?! – orad 2014-06-26 01:32:44

0

使用Detach()上下文刪除這些實體:

context.Transactions.Detach(obj); 

這麼清楚,你將不得不恢復列表 - 但後來只是遍歷它和其分離。

相關問題