在 Dapper 中异步查询多个结果
Query multiple results in Dapper asychronously
我正在尝试解决现有代码的问题,但不确定这种方法是否正确,因为我之前没有使用过 dapper。我正在尝试 return 使用存储过程的对象列表。
下面的代码可以编译,但我不确定这是否是 return 多行的正确方法。有什么东西只是 return 要列出而不是我循环遍历并构建列表然后 returning 吗?
public async Task<List<Event>> GetEventsAsync()
{
await using SqlConnection db = new(this.settings.ConnectionString);
List<Event> events = new List<Event>();
var eventsMarkedPublished = await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure);
foreach (var pubEvents in eventsMarkedPublished)
{
events.Add(pubEvents);
}
return events;
}
我们可以直接用ToList
的方法return List
试试
return (await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure)).ToList();
或
var result = await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure);
return result.ToList();
我正在尝试解决现有代码的问题,但不确定这种方法是否正确,因为我之前没有使用过 dapper。我正在尝试 return 使用存储过程的对象列表。
下面的代码可以编译,但我不确定这是否是 return 多行的正确方法。有什么东西只是 return 要列出而不是我循环遍历并构建列表然后 returning 吗?
public async Task<List<Event>> GetEventsAsync()
{
await using SqlConnection db = new(this.settings.ConnectionString);
List<Event> events = new List<Event>();
var eventsMarkedPublished = await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure);
foreach (var pubEvents in eventsMarkedPublished)
{
events.Add(pubEvents);
}
return events;
}
我们可以直接用ToList
的方法return List
试试
return (await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure)).ToList();
或
var result = await db.QueryAsync<Event>("[sp_get_published_events]", null, commandTimeout: 60, commandType: CommandType.StoredProcedure);
return result.ToList();