我需要输出有关商品标签的信息(这是一个多对多关系,并且已经完成)和有关商品类别的信息(这是一个多对多关系),但是我有一些问题。简而言之,我不能使用超过2个这样的Include (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>();
}
}
如何使用这些方法输出标签和类别?