【问题标题】:Extending asp.net mvc 5 identity with custom tables使用自定义表扩展 asp.net mvc 5 标识
【发布时间】:2014-04-24 07:25:37
【问题描述】:

我有一个 asp.net mvc 5 应用程序,该应用程序具有扩展了用户角色和集中用户管理的个人用户帐户安全性(用户不能创建帐户,只有应用程序管理员,即我,创建帐户并为他们分配角色)。

我的用户类看起来像这样:

public class ApplicationUser : IdentityUser
{

// User name, full name, e-mail etc....

}

它存储在身份提供的“AspNetUsers”表中......

现在我需要通过将 CompanyID 属性添加到 ApplicationUser 类和包含公司信息的新表(已经存在于数据库中)来扩展它...

有人能告诉我在哪里可以找到如何做到这一点的信息吗?

【问题讨论】:

  • 应用程序用户是否在您的上下文中启用了数据库迁移?

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity


【解决方案1】:

您只需要像这样将映射添加到公司表:

public class ApplicationUser : IdentityUser
{

// User name, full name, e-mail etc....
    public virtual ICollection<Company> Companies { get; set; }
}

在公司实体中:

public class Company
{

    //other properties
    public virtual ApplicationUser  User { get; set; }
}

然后在您的包管理器控制台中通过Add-Migration 命令添加新的迁移。 此后,您将在 Migrations 文件夹中获得迁移脚本。

然后只需在同一控制台上调用 Update-Database 即可将迁移应用到数据库。

【讨论】:

  • mvc5 模板非常好,而且这个扩展非常简单明了。模板仍然需要更好的结构。
  • 我做过类似的事情。让我感到困惑的是如何查询客户表。查找方法只返回一个空的子表对象,显然不能直接查询身份上下文......我错过了什么吗?有什么方法可以让子表恢复吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2017-07-05
  • 1970-01-01
  • 2018-09-03
  • 2015-03-19
  • 1970-01-01
相关资源
最近更新 更多