2
我们将基于Dapper的应用程序移植到.NET Core,并且我们的事务代码存在问题。Dapper,.NET核心和事务失败
我们用“行动”来执行的东西
public Action<IDbConnection> CreateAction(string statement, object values)
{
return (dbConnection) => dbConnection.Execute(statement, values);
}
而且我们使用的方法与
public void Execute(IEnumerable<Action<IDbConnection>> actions)
{
using (IDbConnection connection = OpenConnection())
using (IDbTransaction transaction = connection.BeginTransaction())
{
try
{
foreach (var action in actions)
{
action(transaction.Connection);
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}
这个伟大的工程与.NET Framework和小巧玲珑1.42执行这些行动,但它不能在.NET核心与Dapper 1.50.2。
System.InvalidOperationException:'ExecuteNonQuery需要该命令在分配给该命令的连接处于未决本地事务时执行事务。该命令的Transaction属性尚未初始化。'
如果我们删除使用它的交易也很好。
需要改变以使其工作?