JEP*_*AAB 3 c# entity-framework transactionscope
我正在开发一个使用Entity Framework 4.0的组件.
在特定情况下,我需要使用a TransactionScope.
try
{
using (TransactionScope t = new TransactionScope())
{
myEntity.MyObjectsOne.Add(new MyObjectOne());
myEntity.MyObjectsTwo.Add(new MyObjectTwo());
myEntity.SaveChanges();
throw new Exception();
t.Complete();
}
}
catch (Exception e)
{
// What should I do?
}
Run Code Online (Sandbox Code Playgroud)
当事务失败并因此未完成时,myEntity仍将反映所做的更改,即添加MyObjectOne和MyObjectTwo.
在这种情况下,为了避免不一致,最佳做法是什么?
执行您需要做的事情的通常方法是在catch块中处置并重新装载您的实体,这样除非正确提交范围,否则您的实体将在应用任何更改之前重新加载.
有关更多详细信息,请参阅此问题和所有答案:撤消实体框架实体中的更改
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |