【问题标题】:Retrieve custom profile data from IdentityUser list with linq使用 linq 从 IdentityUser 列表中检索自定义配置文件数据
【发布时间】:2020-02-20 01:37:50
【问题描述】:

带有身份的 ASP.Net Core 3 MVC Web 应用程序

我的数据库上下文是

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
    : base(options)
    {}
etc...

因此,来自 IdentityUserContext 的用户是一个公共虚拟 DbSet,并被实例化为

DbSet 用户

但是,我定义了ApplicationUser : IdentityUser 来定义我自己的个人资料数据。

public class ApplicationUser : IdentityUser
{
    [Display(Name = "Is Manager")]
    public bool IsSupervisor { get; set; }
    etc....

所以,我在 startup.cs 中将服务配置为:

services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)

我已将我的 UserManager 设置为

私有只读 UserManager _userManager

但是当我尝试使用 LINQ 根据我的自定义配置文件信息(在对控制器的记录“详细”调用中)使用 LINQ 访问和过滤用户记录时,我被告知这些自定义属性不可用:

        var managers = new List<SelectListItem>();
        managers.AddRange(_context.Users.Where(x => x.IsSupervisor == true).Select(manager => new SelectListItem
        {
            Text = manager.DisplayName,
            Value = manager.Id.ToString()
        }).ToList());

        ViewBag.ManagersList = managers;

/Users/robert/Projects/mvc/Vacate/Controllers/EmployeesController.cs(59,59):错误 CS1061:“IdentityUser”不包含“IsSupervisor”的定义,并且没有可访问的扩展方法“IsSupervisor”接受可以找到“IdentityUser”类型的第一个参数(您是否缺少 using 指令或程序集引用?)(CS1061)(Vacate)

那么,在不使用单独的表来存储配置文件信息的情况下,有没有办法对访问您的自定义配置文件成员的用户使用 LINQ?将“演员”用户排序为 LINQ 调用中的正确 ApplicationUser 类型?或者我在设置 ApplicationUser 类以在 Identity 中使用时遗漏了什么?

【问题讨论】:

    标签: linq asp.net-core-mvc asp.net-identity asp.net-core-3.0


    【解决方案1】:

    你应该让你的默认ApplicationDbContext使用新的ApplicationUser

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
    

    更新您的数据库:Add-migrationUpdate-Database

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      相关资源
      最近更新 更多