如何向aspnetuser添加列?

时间:2018-04-05 09:38:55

标签: asp.net asp.net-mvc entity-framework asp.net-identity

我有一个包含2个数据库的项目:1,你有aspnetusers,角色登录等等,第二个数据库用于其他数据。我想让这个项目成为每个租户的独立数据库,并希望能够根据用户公司ID更改连接字符串。所以为了做到这一点,我需要在aspnetusers表中添加一列。

到目前为止,我有这个

    public class ApplicationUser : IdentityUser
{
    public DateTime? LastVisitDate { get; set; }
    public int? CompanyId { get; set; }
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        userIdentity.AddClaim(new Claim("LastVisitDate", this.LastVisitDate.ToString()));
        userIdentity.AddClaim(new Claim("CompanyId", this.CompanyId.ToString()));
        return userIdentity;
    }
}

public static class IdentityExtensions
{
    public static string GetLastVisitDate(this IIdentity identity)
    {
        var claim = ((ClaimsIdentity)identity).FindFirst("LastVisitDate");
        // Test for null to avoid issues during local testing
        return (claim != null) ? claim.Value : string.Empty;
    }

    public static string GetCompanyId(this IIdentity identity)
    {
        var claim = ((ClaimsIdentity)identity).FindFirst("CompanyId");
        return (claim != null) ? claim.Value : string.Empty;
    }

在此之后我进行了添加迁移,并且全部通过了。问题出在Update-Database上。我收到'xxxx.aspusers.aspnetusers'不存在的错误。 如何让它只更新'aspusers.aspnetusers'?它正在尝试定位在Configurations.cs上设置的数据库,这是第二个数据库。

1 个答案:

答案 0 :(得分:0)

  

如何更新'aspusers.aspnetusers'?

您无法强制迁移仅应用于一个表。

如果要定义迁移适用的数据库,请使用-ConnectionString选项。

updata-database -ConnectionString YOUR_CONNECTION_STRING