与使用EF Core管理交易相关的问题:
Username, Password, MachineID
abc, abc, 123
jkl, jkl, 789
rst, rst, 456
是否有机会返回异常,以便将它放在try块中是否有意义?
即
IDbContextTransaction.Rollback()
PD:在这种特定情况下,无法将交易嵌入 try
{
//...
if(condition)
transaction.Commit();
else
throw methodReturn.Exception;
}
catch (Exception e)
{
try // Does this try make any sense?
{
transaction.Rollback();
}
catch
{
// Log
}
throw e;
}
语句中,因此在实际代码中需要进行手动using
调用。
答案 0 :(得分:0)
大多数情况下,直到:
要解决这些问题,您可以:
使用Xact_Abort设置。当SET XACT_ABORT为ON时,如果Transact-SQL语句引发运行时错误,则终止并回滚整个事务。 当SET XACT_ABORT为OFF时,在某些情况下,仅回滚引发错误的Transact-SQL语句并继续处理事务。根据错误的严重程度,即使SET XACT_ABORT为OFF,也可以回滚整个事务。 OFF是默认设置。
捕获并处理错误,并在错误处理中指定回滚