У меня есть User
и Permission
сущностей. Я установил отношения между многими. Таким образом, один User
может иметь много Permission
с, а один Permission
может быть реализован на многих User
с.
Вот как я реализовал отношение «многие ко многим».
ApplicationUser
Класс сущности пользователя
public class ApplicationUser : IdentityUser
{
public bool IsDeleted { get; set; }
public ICollection<UserPermission> UserPermissions { get; set; }
}
Permission
Класс сущности
public class Permission
{
public int Id{ get; set; }
public string Name { get; set; }
public bool IsDeleted { get; set; }
public ICollection<UserPermission> UserPermissions { get; set; }
}
UserPermission
Присоединение к классу сущностей
public class UserPermission
{
public string UserId { get; set; }
public ApplicationUser User { get; set; }
public int PermissionId { get; set; }
public Permission Permission { get; set; }
}
Fluent Api
Конфигурация в ApplicationDbContext
builder.Entity<UserPermission>()
.HasKey(up => new { up.UserId, up.PermissionId });
builder.Entity<UserPermission>()
.HasOne(up => up.User)
.WithMany(p => p.UserPermissions)
.HasForeignKey(x => x.UserId);
builder.Entity<UserPermission>()
.HasOne(p => p.Permission)
.WithMany(u => u.UserPermissions)
.HasForeignKey(x => x.PermissionId);
Я также реализую операцию мягкого удаления с пометкой IsDeleted
свойство.
Поэтому я хочу, чтобы при удалении разрешения также удалялись и его права пользователя.
Как я могу реализовать эту операцию удаления в ядре ef?