QueryAsync 是否使用 Dapper 调用 OpenAsync?
Does QueryAsync calls OpenAsync with Dapper?
我发现了一些看起来像这样的代码(它基于 Dapper 教程):
await using var con = new SqlConnection("some connection");
if (CancellationToken.IsCancellationRequested) await con.OpenAsync(CancellationToken);
return await con.QueryAsync(query, parameters);
我的理解是,如果设置了取消令牌,那么它将打开与该令牌的异步连接。但是,如果未设置,则不会尝试打开连接,而只会调用查询语句。
我想了解的是,如果您不调用 con.OpenAsync
会 con.QueryAsync
调用它吗?本质上,如果没有取消令牌,我是否需要显式调用它?
What I'm trying to understand is if you don't call con.OpenAsync
will con.QueryAsync
call it?
Essentially do I need to explicitly call it if there is no cancellation token?
没有;无论有无取消令牌
,您都不需要称呼它
但是!如果您要执行多个 相关 操作 - 可能涉及临时 table 或事务 - 那么您将需要进行自己的连接状态管理,即您需要调用Open[Async]
你自己(和 Close
,如果你不立即处理它的话)。
我发现了一些看起来像这样的代码(它基于 Dapper 教程):
await using var con = new SqlConnection("some connection");
if (CancellationToken.IsCancellationRequested) await con.OpenAsync(CancellationToken);
return await con.QueryAsync(query, parameters);
我的理解是,如果设置了取消令牌,那么它将打开与该令牌的异步连接。但是,如果未设置,则不会尝试打开连接,而只会调用查询语句。
我想了解的是,如果您不调用 con.OpenAsync
会 con.QueryAsync
调用它吗?本质上,如果没有取消令牌,我是否需要显式调用它?
What I'm trying to understand is if you don't call
con.OpenAsync
willcon.QueryAsync
call it?
Essentially do I need to explicitly call it if there is no cancellation token?
没有;无论有无取消令牌
,您都不需要称呼它但是!如果您要执行多个 相关 操作 - 可能涉及临时 table 或事务 - 那么您将需要进行自己的连接状态管理,即您需要调用Open[Async]
你自己(和 Close
,如果你不立即处理它的话)。