- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。
异步:
public async Task<IList<Product>> GetListAsync()
{
using (var connection = new SqlConnection(_connectionString))
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT Id, Name ");
sql.AppendLine("FROM Product ");
await connection.OpenAsync();
var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
return tickets.ToList();
}
}
非异步:
public async Task<IList<Product>> GetListAsync()
{
using (var connection = new SqlConnection(_connectionString))
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT Id, Name ");
sql.AppendLine("FROM Product ");
connection.Open();
var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
return tickets.ToList();
}
}
最佳答案
OpenAsync()
将立即从方法 (GetListAsync
) 返回到调用它的方法,以便线程可以同时自由地做其他事情。例如,假设打开连接需要一秒钟(仅作为示例),然后线程可以做其他事情。连接的打开不会由调用它的线程完成。
一旦连接打开,执行将转到下一行:
var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
注意:请注意,在某些情况下,如果 IsCompleted
返回 true,那么它将同步完成。
关于c# - 使用 Dapper QueryAsync 方法时 connection.OpenAsync 和 connection.Open 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46801943/
我按照问题答案的规定使用了 queryAsync(),它确实有效,但它向我的查询结果添加了大量额外的元数据,否则这是一个简单的查询。 这是我用来处理/执行查询并记录结果的内容: var retriev
我在 C# 中有这个任务,我想使用 dapper 在 MySql 中调用一个存储过程。 public async Task> GetTable() { using (MySql
我正在尝试测试我的存储库方法,它使用 QueryAsync() 并且它在一个事务中。所以我在模拟 IDbConnection 和 IDbTransaction。但是当我运行测试用例时它给出了一个错误
不幸的是,我们的数据库可以追溯到 90 年代。它的遗产是如此强大,以至于我们仍在使用 SP 来完成大部分的 CRUD 操作。然而,Dapper 似乎很适合我们,我们才刚刚开始使用它。 但是,我有点担心
为什么我不能在 Query 上正常使用 .select 时在 Query 上使用它? 例如,这里 .select 对我大喊大叫,告诉我它无法解析符号“select”: var result = awa
我正在使用 dapper 和 C#7 ValueTuples(已安装的 nuget)执行以下查询: await connection.QueryAsync( $@"SE
我正在使用异步等待构建nodejs api。所以我的 Controller 每个函数都是异步的,它通过模型接收 promise 。对于查询,我使用了sequelize包来与数据库交互。为了使用sequ
在这里使用 .net core api (c#) 和 dynamodb。 我的 dbmanager 类为: public class DbManager : DynamoDBContext, IDyn
使用此代码(有或没有“.ToList()”): public async Task> SelectDistinctGroupNames() { var db = new SQLiteAsync
我正在更新我的项目以使用 Azure.Data.Tables 12.6.1,但我不知道在哪里指定 Take 值来限制从查询返回的实体数。 换句话说,我想做这样的事情: var limit = 150;
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我尝试使用以下代码,但它不起作用。 public void deleteRow(int index) { conn.QueryAsync("D
未处理的拒绝错误:握手不活动超时。我运行应用程序并在连接到数据库期间收到错误以防获取数据。我删除了 node_modules 文件夹。通过 nvm 将 Node 版本从 4.4.7 更改为 6.10.
我有一个执行检查并返回一行或非零返回值的存储过程: CREATE PROCEDURE dbo.ConditionalGet @ID INT AS BEGIN -- this is a
首先,我认为第一次只是一个条件,可以更清楚地看到这种阻塞。对于下一次,它仍会以某种方式稍微阻塞 UI,但不像不使用异步时那样明显。 我可以这么说,因为我可以看出使用 QueryAsync 之间的区别和
下面给出的是我用来从 Dynamodb 表中检索详细信息的方法。但是当我调用这个方法时,它最终抛出了一个异常“无法找到关键属性任命 ID 的属性”。这个特定表的主键是appointmentId,但我已
为什么在此方法上调用 .Result 会导致 TaskCanceledException: public Task> GetAsync() { using (var conn = new Sq
我正在运行以下查询,其中包含 Case 和 Account 之间的子 => 父关系 - 并在 SELECT 中包含 Account.Name: string query = "SELECT Case.
在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。 异步: public async Ta
我是一名优秀的程序员,十分优秀!