Как использовать 2 метода .Include <>, чтобы связать 3 таблицы - PullRequest
0 голосов
/ 05 ноября 2019

Мне нужно вывести информацию о тегах статьи (это отношение «многие ко многим» и все готово) и о категории статьи (это отношение «один ко многим»), но у меня есть некоторые проблемы с этим. Короче говоря, я не могу использовать более 2 Включить <> вот так (NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта):

Article article = await db.Articles.Include(ar=>ar.CategoryId).Include(a => a.ArticlesTags).ThenInclude(at => at.Tag).FirstOrDefaultAsync(i => i.Id == id);

Но это работает правильно, но не выводит категорию:

Article article = await db.Articles.Include(a => a.ArticlesTags).ThenInclude(at => at.Tag).FirstOrDefaultAsync(i => i.Id == id);

Это мои занятия:

public class Article
{        
    public int Id {get; set; }

    public string Name { get; set; }
    public string ShortDescription { get; set; }
    public string Description { get; set; }
    public byte[] HeroImage { get; set; }        
    public DateTime Date { get; set; }      

    public int? CategoryId { get; set; }  //implementing one to many relationship with category
    public Category Category { get; set; }

    public virtual List<ArticleTag> ArticlesTags { get; set; } //implementing many to many relationship with tags
    public Article()
    {
        ArticlesTags = new List<ArticleTag>();
    }
}

 public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Article> Articles { get; set; }

    public Category()
    {
        Articles = new List<Article>();
    }
}

Как я могу использовать эти методы для вывода тегов и категории?

...