• The transaction associated with this command is not the connection's active transaction


    The fix is fairly simple: if you want a Dapper query to participate in a connection, explicitly denote that intent:
    
    private async Task<EResult> ProcessDepotAfterDownload(ManifestJob request, DepotManifest depotManifest)
    {
        using (var db = await Database.GetConnectionAsync())
        using (var transaction = await db.BeginTransactionAsync())
        {
            // add `transaction` to method call below
            var result = await ProcessDepotAfterDownload(db, transaction, request, depotManifest);
            await transaction.CommitAsync();
            return result;
        }
    }
    
    private async Task<EResult> ProcessDepotAfterDownload(IDbConnection db, IDbTransaction transaction, ManifestJob request, DepotManifest depotManifest)
    {
        // pass `transaction` to Dapper's QueryAsync below
        var filesOld = (await db.QueryAsync<DepotFile>("SELECT `ID`, `File`, `Hash`, `Size`, `Flags` FROM `DepotsFiles` WHERE `DepotID` = @DepotID", new { request.DepotID }, transaction: transaction)).ToDictionary(x => x.File, x => x);
        ....
    }
  • 相关阅读:
    导航
    占位
    django(一)
    进程与线程
    网络编程
    反射 单例模式
    面向对象及命名空间
    logging,包
    模块(二)os hashlib
    装饰器&递归
  • 原文地址:https://www.cnblogs.com/kzwrcom/p/8303608.html
Copyright © 2020-2023  润新知