Как удалить подписчика в таблице бд из контроллера

#c# #postgresql #asp.net-core

Вопрос:

У меня есть сущность Пользователя, в которой я создал двух общих подписчиков ICollection и аналогичного одного из Подписчиков. Когда я создаю IdentityDbContext, я называл только табличные сущности Пользователей, Лайков, Сообщений, Комментариев. И напишите эту часть кода.

         protected void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>()
            .HasMany(x => x.Followers).WithMany(x => x.Following)
            .Map(x => x.ToTable("Followers")
                .MapLeftKey("UserId")
                .MapRightKey("FollowerId"));
        modelBuilder.Entity<User>()
                .HasMany(x => x.Following).WithMany(x => x.Followers)
                .Map(x => x.ToTable("Following")
                    .MapLeftKey("UserId")
                    .MapRightKey("FollowingId"));
    }
 

В контроллере я могу добавлять подписчиков к Пользователю, но не могу отменить подписку. У меня есть некоторые проблемы, чтобы найти, где в базе данных добавлять подписчиков и следующих пользователей. В миграциях я вижу, что есть таблица «Пользователь». И в этой таблице построены отношения между последователями и последователями.

  migrationBuilder.CreateTable(
            name: "UserUser",
            columns: table => new
            {
                FollowersId = table.Column<string>(type: "text", nullable: false),
                FollowingId = table.Column<string>(type: "text", nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_UserUser", x => new { x.FollowersId, x.FollowingId });
                table.ForeignKey(
                    name: "FK_UserUser_AspNetUsers_FollowersId",
                    column: x => x.FollowersId,
                    principalTable: "AspNetUsers",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);
                table.ForeignKey(
                    name: "FK_UserUser_AspNetUsers_FollowingId",
                    column: x => x.FollowingId,
                    principalTable: "AspNetUsers",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);
            });
 

а вот мой код контроллера для добавления подписчика.

        public IActionResult Follow(string userId)
    {
        var user = _db.ContextUser.FirstOrDefault(x => x.Id == userId);
        var currentUser = CurrentUser().Resu<
        if (currentUser.Following == null)
        {
            currentUser.Following = new Collection<User>();
        }
        if (user.Followers == null)
        {
            user.Followers = new Collection<User>();
        }
        user.Followers = _db.ContextUser
                        .Where(t =>
                            t.Following.Contains(user)).ToList();
        currentUser.Following = _db.ContextUser
                            .Where(t =>
                            t.Followers.Contains(currentUser)).ToList();
        if (user.Followers.Any(a => a == currentUser))
        {
            currentUser.Following.Remove(user);
            user.Followers.Remove(currentUser);
            _db.SaveChanges();
        }
        else
        {
            currentUser.Following.Add(user);
            user.Followers.Add(currentUser);
        }
        _db.ContextUser.Update(user);
        _db.ContextUser.Update(currentUser);
        _db.SaveChanges();
        return RedirectToAction("Personal", "Post", new { Id = userId });
    }
 

Может ли кто-нибудь помочь мне подать заявку на эту таблицу или другими способами