带有取消标记的 SqlKata

SqlKata with cancellation token

我有一些长 运行 查询,如果 API 请求被浏览器取消,我想取消执行中。我正在使用 SqlKata 执行我的查询,但我没有看到取消标记的参数。我怎样才能取消查询?

我想要这样的东西query.GetAsync<T>(cancelationToken: cancelationToken)

看起来最新版本的 sql kata 将其作为参数之一。我刚刚将软件包 SqlKataSqlKata.Execution 升级到版本 2.3.3,我在源代码中看到了它。

或者,您可以通过 Dapper 手动 运行 它,方法是从 SqlKata 获取 SQL 字符串和绑定并将其传递到 Dapper。我没有对此进行测试,但它会是这样的:

var connection = new SqlConnection(connectionString);
var compiler = new SqlServerCompiler();
var db = new QueryFactory(connection, compiler);
var query = db.Query("TableName"); // write your query here

var sqlResult = db.Compiler.Compile(query);
var sqlString = sqlResult.Sql;
var bindings = sqlResult.Bindings;

await using var connection = new SqlConnection(connectionString);
var result = await connection.QueryAsync(new CommandDefinition(sqlString, bindings, cancellationToken: cancellationToken));