我有一个包含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上设置的数据库,这是第二个数据库。
答案 0 :(得分:0)
如何更新'aspusers.aspnetusers'?
您无法强制迁移仅应用于一个表。
如果要定义迁移适用的数据库,请使用-ConnectionString
选项。
updata-database -ConnectionString YOUR_CONNECTION_STRING