在我的情況下,我有三個派生類ApplicationUserClaim,ApplicationUserLogin,ApplicationUserRole。我這樣做是因爲我需要添加一些自定義屬性。
沒有添加屬性的派生類應該看起來像這樣。
public class ApplicationUserLogin : IdentityUserLogin<string>
{
public virtual ApplicationUser ApplicationUser { get; set; }
}
public class ApplicationUserRole: IdentityUserRole<string>
{
public virtual ApplicationUser ApplicationUser { get; set; }
}
public class ApplicationUserClaim: IdentityUserClaim<string>
{
public virtual ApplicationUser ApplicationUser { get; set; }
}
在您ApplicationUser添加以下代碼:
public virtual ICollection<ApplicationUserRole> Roles { get; } = new List<ApplicationUserRole>();
public virtual ICollection<ApplicationUserClaim> Claims { get; } = new List<ApplicationUserClaim>();
public virtual ICollection<ApplicationUserLogin> Logins { get; } = new List<ApplicationUserLogin>();
在您ApplicationDbContext添加以下代碼:
modelBuilder.Entity<ApplicationUserClaim>().HasOne(pt => pt.ApplicationUser).WithMany(t => t.Claims).HasForeignKey(pt => pt.UserId);
modelBuilder.Entity<ApplicationUserRole>().HasOne(pt => pt.ApplicationUser).WithMany(t => t.Roles).HasForeignKey(pt => pt.UserId);
modelBuilder.Entity<ApplicationUserLogin>().HasOne(pt => pt.ApplicationUser).WithMany(t => t.Logins).HasForeignKey(pt => pt.UserId);
使遷移和你做。
這不是對我的作品的問題。我是否需要廣告一些其他代碼? –