public ActionResult Restaurants()
{
var restaurants = _context.ApplicationUsers.ToList();
return View(restaurants);
}
我想从ASP.NET MVC中提取已注册用户的信息并列出它。但是当我执行上面的代码时,我收到错误信息:
不支持每种类型的多个对象集。对象集 ' ApplicationUsers'和'用户'都可以包含类型的实例 ' ESportsScreening.Models.ApplicationUser'
如何在ASP.NET MVC 5中列出注册用户的信息?
答案 0 :(得分:2)
ASP.NET不允许您在具有相同实体类型的相同上下文中拥有2个DbSet<T>
。导致此错误的最可能原因是初始化您的DbContext
,如下所示:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
}
在上面的代码中,ApplicationDbContext
已经包含从DbSet
继承的ApplicationUser
类型IdentityDbContext<ApplicationUser>
(您可以通过_context.Users
访问)。通过手动添加第二个DbSet<ApplicationUser>
,我们创建了两个具有相同实体类型的集合。删除手动DbSet
属性,然后使用继承的Users
集。
答案 1 :(得分:0)
该错误表示您有两个相同类型的ESportsScreening.Models.ApplicationUser的对象集。您应该删除其中一个以解决此错误。每种类型只能设置一个对象,而且不需要更多。
为了帮助您了解如何找到注册用户,您需要提供一些有关您认为注册用户的信息。我猜你的数据库中的所有用户都是注册用户,在这种情况下,以下代码行就足够了:
var restaurants = _context.ApplicationUsers.ToList();
如果您需要过滤用户,可以使用Where扩展方法,如下所示:
var restaurants = _context.ApplicationUsers.Where(x =&gt; yourconditionhere).ToList();