有没有办法删除单个实体的更改跟踪机制?

时间:2013-03-04 19:15:07

标签: c# asp.net-mvc entity-framework

我有这样的事情:

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

现在,我想从dbTransactions列表中删除对象,但不是从实际数据库中删除。后来我正在调用context.SaveChanges(),如果我这样做,它会擦除​​我的数据库中的行。如何停用dbTransactions的更改跟踪?

2 个答案:

答案 0 :(得分:9)

我认为你可以使用AsNoTracking,而使用Detach

Youcontext.YourEntities.AsNoTracking().Where);

或使用

Youcontext.Transactions.Detach(obj);

答案 1 :(得分:0)

使用Detach()

从上下文中删除这些实体
context.Transactions.Detach(obj);

如此清楚,你将不得不恢复该列表 - 但只需迭代它并分离它们。