我有三个表:文章,标签和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请求返回文章但不包含标记。
请尝试以下代码配置Mapper
。
public class TagViewModel
{
public int Id { get; set; }
public string TagName { get; set; }
}