检索所有用户asyncronously .NET的MVC
问题描述:
我有一个.NET MVC应用程序,我想创建一个函数来从我的数据库表中获取所有用户:检索所有用户asyncronously .NET的MVC
public async Task<IEnumerable<User>> GetAllAsync()
{
var context = serviceProvider.GetRequiredService<ServicesDbContext>();
var users = await context.User;
return users;
}
我试图使该方法async
这反过来需要一个await
。不幸的是,如果我在等待着为context.User
要返回的编译器抱怨:
DbSet <用户>不包含定义GetAwaiter
这听起来像的ServiceProvider不允许的asyncronous通话检索数据库中的所有行。我明白,检索表中的所有东西不涉及复杂的数据库筛选如SELECT,WHERE甚至JOIN,但不应该“让他们全部”电话反正需要一些时间?
答
您是否试过以下代码?
public async Task<IEnumerable<User>> GetAllAsync()
{
var context = serviceProvider.GetRequiredService<ServicesDbContext>();
var users = await context.User.ToListAsync();
return users;
}
.ToListAsync()
是一个异步方法,因此它可以等待。
您将需要确保以下using语句包括:
using System.Data.Entity;
另外'GetRequiredService()'必须是一个'async'方法。 –
你有没有尝试过'var users = await context.User.ToListAsync();',这将需要'System.Data.Entity'命名空间 –
@AdamT试过了,它的工作原理,谢谢 –