QueryAsync是否使用Dapper调用OpenAsync?

问题描述 投票:0回答:1

我遇到了一些看起来像这样的代码(它基于Dapper教程):

await using var con = new SqlConnection("some connection");
if (CancellationToken.IsCancellationRequested) await con.OpenAsync(CancellationToken);
return await con.QueryAsync(query, parameters);

我的理解是,如果设置了取消令牌,那么它将打开与该令牌的异步连接。但是,如果未设置,它将不会尝试打开连接,而只会调用查询语句。

我想了解的是,如果您不打电话给con.OpenAsynccon.QueryAsync会打电话吗?本质上,如果没有取消令牌,我需要显式调用它吗?

c# .net-core dapper sqlconnection asp.net-core-3.0
1个回答
2
投票

我想了解的是,如果您不打电话给con.OpenAsynccon.QueryAsync会打电话吗?

yes

基本上,如果没有取消标记,我需要显式调用它吗?

否;您无需将其称为带有或不带有取消令牌

但是!如果您要执行多个related操作-可能涉及临时表或事务-那么您将需要进行自己的连接状态管理,即您需要自己调用Open[Async](和Close,如果您不立即处理它的话。

© www.soinside.com 2019 - 2024. All rights reserved.