gpt4 book ai didi

c# - 如何在控制台应用程序 C# 中使用异步等待

转载 作者:行者123 更新时间:2023-12-05 02:29:27 25 4
gpt4 key购买 nike

这是存储库中的方法:

public async Task<IEnumerable<T>> FindAll()
{
IQueryable<T> query = this.Context.Set<T>();
return await query.Select(e => e).ToListAsync();
}


public class Program
{
static void Main(string[] args)
{
DB dB = new DB();
IUnitOfWork unitOfWork = new UnitOfWork(dB);
Task<IEnumerable<User>> users = unitOfWork.UserRepository.FindAll();
users.Wait();
Console.WriteLine(users);
}
}

当我运行我的代码时,我得到:

System.Runtime.CompilerServices.AsyncTaskMethodBuilder'1+AsyncStateMachineBox'1[System.Collections.Generic.IEnumerable'1[PasteBook.WebApi.Models.User],PasteBook.WebApi.Repositories.GenericRepository'1+d__5[PasteBook.WebApi.Models.User]]

最佳答案

最简单的选择就是使用异步入口点:

public class Program
{
// async Main method, with a Task return type
static async Task Main(string[] args)
{
DB dB = new DB();
IUnitOfWork unitOfWork = new UnitOfWork(dB);
// It's fine to await within the async method
var users = await unitOfWork.UserRepository.FindAll();
foreach (var user in users)
{
Console.WriteLine(user);
}
}
}

(请注意,此答案并不试图解决您是否应该使用这种特定的数据库访问模式 - 它的重点是“如何从控制台应用程序使用 await”。)

关于c# - 如何在控制台应用程序 C# 中使用异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72172979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com