QueryAsync вызывает OpenAsync с помощью Dapper? - PullRequest
1 голос
/ 18 октября 2019

Я столкнулся с небольшим количеством кода, который выглядит следующим образом (он основан на обучающей программе Dapper):

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

Как я понимаю, если маркер отмены был установлен, то он откроет асинхронный кодсвязь с этим токеном. Однако, если он не установлен, он не будет пытаться открыть соединение и вместо этого просто вызовет оператор запроса.

Я пытаюсь понять, что если вы не вызовете con.OpenAsync will con.QueryAsync назовите это? По сути, нужно ли явно вызывать его, если токена отмены нет?

1 Ответ

2 голосов
/ 18 октября 2019

Я пытаюсь понять, что если вы не позвоните, con.OpenAsync будет con.QueryAsync звонить?

да

По сути, нужно ли явно вызывать его, если токена отмены нет?

нет;Вам не нужно называть это с или без токеном отмены

Однако! если вы собираетесь выполнить несколько операций , связанных с - возможно, с использованием временной таблицы или транзакции - тогда вам нужно будет выполнить свое собственное управление состоянием соединения, то есть вам придется самостоятельно вызывать Open[Async] (и * 1022). *, если вы не утилизируете его немедленно).

...