如果 API 请求被浏览器取消,我有一些长时间运行的查询,我想取消中间执行。我正在使用 SqlKata 执行查询,但没有看到取消令牌的参数。我怎样才能取消我的查询?
我想要这样的东西query.GetAsync<T>(cancelationToken: cancelationToken)
如果 API 请求被浏览器取消,我有一些长时间运行的查询,我想取消中间执行。我正在使用 SqlKata 执行查询,但没有看到取消令牌的参数。我怎样才能取消我的查询?
我想要这样的东西query.GetAsync<T>(cancelationToken: cancelationToken)
看起来最新版本的 sql kata 将其作为参数之一。我刚刚升级了软件包SqlKata
并升级SqlKata.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));