Каскадное удаление данных через связь в БД многие-ко-многим

Создал 2 таблицы, задачи и теги. Для объединения через связь многие-ко-многим использую таблицу TaskTag

public class Task
{
 public int Id { get; set; }
 public string Name { get; set; }
 public virtual IList<TaskTag> Tags { get; set; }
}
public class Tag
{
 public int Id { get; set; }
 public string Name { get; set; }
 public virtual IList<TaskTag> Tasks { get; set; }
}

Выполняю удаление, например, задачи по заданному коду, где передаю объект задачи.

public async Task DeleteAsync(T entity)
    {
        _dbMainContext.Set<T>().Remove(entity);
        await _dbMainContext.SaveChangesAsync();
    }

Миграция

migrationBuilder.CreateTable(
            name: "TaskTag",
            columns: table => new
            {
                TaskId = table.Column<int>(nullable: false),
                TagId = table.Column<int>(nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_TaskTag", x => new { x.TaskId, x.TagId });
                table.ForeignKey(
                    name: "FK_TaskTag_Tags_TagId",
                    column: x => x.TagId,
                    principalTable: "Tags",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);
                table.ForeignKey(
                    name: "FK_TaskTag_Tasks_TaskId",
                    column: x => x.TaskId,
                    principalTable: "Tasks",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);
            });

Но при удалении у меня удаляются данные из Task и из TaskTag но из таблицы Tag данные не удаляются, подскажите, это так и должно быть? Или мне необходимо добавлять какие то дополнительные связи?


Ответы (0 шт):