[英]How to use Implicit Many to Many between IdentityUser and IdentityRole in ASP.NET Core 5
我有這兩個實體。
public class ApplicationUser : IdentityUser<int>
{
public int DepartmentId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string NationalCode { get; set; }
public DateTimeOffset DateCreated { get; set; } = DateTimeOffset.Now;
public DateTimeOffset DateModified { get; set; } = DateTimeOffset.Now;
public CorporateTitle CorporateTitle { get; set; }
public Department Department { get; set; }
public ICollection<ApplicationRole> Roles { get; set; } //* instead of IdetityUserRole
public class ApplicationRole : IdentityRole<int>
{
public string DisplayName { get; set; }
public string Description { get; set; }
public ICollection<ApplicationUser> Users { get; set; } //* instead of IdetityUserRole
}
我想自定義這兩個實體,例如覆蓋導航屬性。 我不想將 IdentityUserRole Class 用於這些類之間的多對多關系。
我應該如何在 Identity Core 中為這種類型的隱式多對多編寫配置?
builder.Entity<ApplicationUser>()
.HasMany(appUser => appUser.Roles)
.WithMany(role => role.Users)
.UsingEntity<>(); // here I don't know how to config this relationship.
這是此場景的配置需求。 (跳過導航 EF Core 5)
builder.Entity<ApplicationUser>()
.HasMany(u => u.Roles)
.WithMany(r => r.Users)
.UsingEntity<IdentityUserRole<int>>
(au => au.HasOne<ApplicationRole>().WithMany(role => role.UserRoles).HasForeignKey(u=> u.RoleId),
au => au.HasOne<ApplicationUser>().WithMany(user => user.UserRoles).HasForeignKey(r=> r.UserId));
完整的源代碼: https://github.com/ArminShoeibi/ImplicitManyToManyIdentityCore
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.