我对 TransactionScope
回滚有疑问。
当回滚上下文中对象的 TransactionScope
状态时(changetracker)从添加更改为修改
private xType _x
{
get;
set
}
public void add(x: xtype)
{
context.xlist.add(x);
}
public xclass: object
{
public xclass()
{
_x = new xtype();
add(_x);
}
public void savechanges;
{
using(transactionscope = new transactionscope())
{
try
{
context.savechanges();
x = 0;
x = x / x;
transcope.complete();
} catch
{
transcope.rollback();
}
}
}
项目使用.net 4.0、vs 2013、ef 6.1、SQL Server 2008 Express,并使用UnitOfWork、Repository模式
最佳答案
您在保存对象后对其进行修改。这使它们发生了变化。
当事务回滚时,EF 没有做任何特别的事情。它的内部状态都没有改变。实体对象不会还原。最佳模式是在回滚后放弃 EF 上下文。
您不需要显式回滚。删除捕获。现在它所做的就是吞下所有错误。
关于c# - Entity Framework 6.1 中的事务范围回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31801385/