Как решить рекурсивные отношения EntityFramwork. нет HaveMany в ядре Ef! (Сначала код) - PullRequest
0 голосов
/ 27 марта 2020

Я использую Microsoft.EntityFrameworkCore.Sqlite У меня рекурсивные отношения с одним и тем же классом (тег может иметь много связанных тегов), я использую подход Code First

Я видел решение по использование ..Many (..). haveMany (..) .... но HaveMany () (от многих к многим) не реализовано в ядре entityFramwork.

// my class


  public class Tag
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int TagId { get; set; }

        public string Name { get; set; }

        public virtual List<Tag> RelatedTags { get; set; }

        public Tag() { }


        public Tag(string tagName)
        {
            RelatedTags = new List<Tag>();
            this.Name = tagName;
        }
}

как мне добиться этого, особенно какую конфигурацию я должен установить. заранее спасибо.

лучшее, что я нашел, - это создать что-то вроде этого:

    class Tag
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int TagId { get; set; }
    public string Name { get; set; }

    public Tag() { RelatedTags = new List<RelatedTag>(); }


     public virtual List<RelatedTag> RelatedTags { get; set; }
}

    class RelatedTag
{

    public int TagIdSource { get; set; }

    public int TagIdRelated { get; set; }    
}

// on DbContext
    modelBuilder.Entity<RelatedTag>().HasKey(tg => new { tg.TagIdSource, tg.TagIdRelated });

проблема с этим решением в том, чтобы получить соответствующие теги, я должен сделать присоединиться к запросу, чтобы узнать, какие теги содержат определенные c идентификаторы.

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