在 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();