У меня есть три таблицы: Статьи, Теги и ArticleTag.Модель Article имеет отношение многие ко многим с моделью Tag с тегом ArticleTag в качестве их соединения.Это модели:
public class Article
{
...
public ICollection<ArticleTag> ArticleTags { get; set; }
}
public class Tag
{
...
public ICollection<ArticleTag> ArticleTags { get; set; }
}
public class ArticleTag
{
public int ArticleId { get; set; }
public Article Article { get; set; }
public int TagId { get; set; }
public Tag Tag { get; set; }
}
Вот как я получаю статью:
public Article GetArticleById(int id)
{
return _appContext.Articles
.Include(a => a.ArticleTags).ThenInclude(at => at.Tag)
.FirstOrDefault(a => a.Id == id);
}
Модель просмотра:
public class ArticleViewModel
{
...
public ICollection<TagViewModel> Tags { get; set; }
}
А это контроллер:
[HttpGet("{id:int}")]
public IActionResult Get(int id)
{
var article = _unitOfWork.Articles.GetArticleById(id);
return Ok(Mapper.Map<ArticleViewModel>(article));
}
Запрос API возвращает статью, но теги не включены.