如何提取注册用户的数据?

时间:2017-05-05 11:01:34

标签: c# asp.net asp.net-mvc model-view-controller

 public ActionResult Restaurants()
        {
            var restaurants = _context.ApplicationUsers.ToList();
            return View(restaurants);
        }

我想从ASP.NET MVC中提取已注册用户的信息并列出它。但是当我执行上面的代码时,我收到错误信息:

  

不支持每种类型的多个对象集。对象集   ' ApplicationUsers'和'用户'都可以包含类型的实例   ' ESportsScreening.Models.ApplicationUser'

如何在ASP.NET MVC 5中列出注册用户的信息?

2 个答案:

答案 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();