我正在使用 EF 6 Database.SqlQuery 语句来执行存储过程,该存储过程已实现错误和事务处理,并打开和关闭事务(处理多个记录,如果一条记录出现错误,则仅回滚此记录,并提交其他已完成且没有错误的内容) )。
List<T> _result = this.Database.SqlQuery<T>(sqlStatement, parameters).ToList();
Run Code Online (Sandbox Code Playgroud)
EF 使用自己的事务来执行 Database.SqlQuery,但是当发生错误并且我回滚到存储过程时,此回滚也适用于 EF 事务。所以我得到以下异常:
System.Data.SqlClient.SqlException (0x80131904): 当前事务无法提交,并且无法支持写入日志文件的操作。回滚事务。
在这种情况下,我如何防止 EF 使用他自己的事务,或者阻止程序关闭 EF 的事务?