C# 如何在LINQ中包含来自父对象的字段?
我试图在LINQ查询中添加一个来自对象父对象的字段,但它不起作用。以下是我的课程:C# 如何在LINQ中包含来自父对象的字段?,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,我试图在LINQ查询中添加一个来自对象父对象的字段,但它不起作用。以下是我的课程: public Problem() { this.Questions = new List<Question>(); } public int ProblemId { get; set; } public int SubTopicId { get; set; } public string Text { get; set; } public
public Problem()
{
this.Questions = new List<Question>();
}
public int ProblemId { get; set; }
public int SubTopicId { get; set; }
public string Text { get; set; }
public virtual SubTopic SubTopic { get; set; }
public virtual ICollection<Question> Questions { get; set; }
}
public class Question : AuditableTable
{
public int QuestionId { get; set; }
public int ProblemId { get; set; }
public virtual Problem Problem { get; set; }
public virtual QuestionStatus QuestionStatus { get; set; }
}
var questions = _questionsRepository
.GetAll()
.Include(q => q.Problem.SubTopicId)
.Include(q => q.Answers)
.ToList();
您必须
包括导航属性,而不是ID:
.Include(x => x.Problem.SubTopic)
如果我是你,我会考虑从数据库中取回你真正需要的东西,然后返回一个映射对象,以减轻负载。你必须相当确定你不会在某个地方遇到N+1问题……:) 您必须包括导航属性,而不是ID:
.Include(x => x.Problem.SubTopic)
如果我是你,我会考虑从数据库中取回你真正需要的东西,然后返回一个映射对象,以减轻负载。你必须相当确定你不会在某个地方遇到N+1问题……:)