Как реализовать операцию удаления с отношением «многие ко многим» в EF Core - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...