2013-03-04 37 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); 

这么清楚,你将不得不恢复列表 - 但后来只是遍历它和其分离。

相关问题