zoukankan      html  css  js  c++  java
  • 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);
        ....
    }
  • 相关阅读:
    react-router-dom
    react详解state、props、refs
    vuex
    canvas与svg相关介绍与区别
    js改变标签属性与js事件
    Typescript基础类型
    es6
    js模块化的3种规范
    webpack
    react-infinite-scroller使用
  • 原文地址:https://www.cnblogs.com/kzwrcom/p/8303608.html
Copyright © 2011-2022 走看看