Как создать самоссылающуюся таблицу с составным ключом в свободное API и EF

Я строю иерархическую базу данных с "таблицей замыканий", чтобы построить дерево. Это таблица с самоссылкой, и оба ключа должны стать первичным ключом.

Проблема в том, что я получаю 5 столбцов, когда ожидаю только 3.

Вот что я попробовал:

    public class Tree
    {
        public int TaskId { get; set; }
        public Task Task { get; set; }  //navigation Property to TaskTable

        public int? ChildId { get; set; }
        public Tree Child { get; set; } //navigation Property

        public int Length { get; set; } //Length

    }

    public class Task
    {
        public int TaskId { get; set; }
        public virtual ICollection<Tree> Trees { get; set; }
    }

    modelBuilder
        .Entity<Task>()
        .HasKey(t => t.TaskId);

    modelBuilder
        .Entity<Tree>()
        .HasKey(a => new { a.TaskId, a.ChildId });

В результате получается таблица с 5 столбцами:

  1. TaskId
  2. ChildId
  3. длина
  4. Child_TaskId
  5. Child_ChildId

Я ожидал:

  1. TaskId
  2. ChildId
  3. длина

Я предполагаю, что какой-то свободный API отсутствует, но я не мог заставить работать иначе?

0 ответов

Другие вопросы по тегам