我有一个带有2个数据库的项目:1您在其余的数据中都有Aspnetuser,角色登录等以及第二个数据库。我想让这个项目是每个租户单独的数据库,并希望能够根据用户公司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;
}
之后,我进行了添加移民,这一切都通过了。问题在于更新数据库。我遇到了一个错误,即" xxxx.aspusers.aspnetusers"不存在。如何使其仅更新" aspusers.aspnetusers"?它试图定位在configurations.cs上设置的数据库,即第二个数据库。
如何使其仅更新'aspusers.aspnetusers'?
您不能强迫迁移仅适用于一个表。
如果要定义迁移的数据库应用于哪个数据库,则使用-ConnectionString
选项。
updata-database -ConnectionString YOUR_CONNECTION_STRING