【发布时间】:2014-10-15 03:02:29
【问题描述】:
我正在尝试从 3 个实体获取数据。考试、目标和目标细节。我希望能够通过考试名称来选择它。这是我正在使用的代码:
var result = await db.Exams
.Include(e => e.Objectives)
.Include(e => e.Objectives.SelectMany(o => o.ObjectiveDetails))
.Where(e => e.Name == name)
.FirstOrDefaultAsync();
当我运行它时,这给了我一条错误消息:
exceptionMessage=包含路径表达式必须引用一个 在类型上定义的导航属性。使用虚线路径 参考导航属性和用于集合的 Select 运算符 导航属性。参数名称:路径
谁能告诉我我做错了什么。这是我的课程:
public class Exam
{
public Exam()
{
this.Objectives = new HashSet<Objective>();
}
public int ExamId { get; set; }
public int SubjectId { get; set; }
public virtual ICollection<Objective> Objectives { get; set; }
}
public class Objective : AuditableTable
{
public Objective()
{
this.ObjectiveDetails = new HashSet<ObjectiveDetail>();
}
public int ObjectiveId { get; set; }
public int ExamId { get; set; }
public int Number { get; set; }
public virtual Exam Exam { get; set; }
public virtual ICollection<ObjectiveDetail> ObjectiveDetails { get; set; }
}
public partial class ObjectiveDetail
{
public int ObjectiveDetailId { get; set; }
public int ObjectiveId { get; set; }
public int Number { get; set; }
public string Text { get; set; }
public virtual Objective Objective { get; set; }
}
【问题讨论】:
-
错误消息告诉你确切地你做错了什么。把整本书读到最后。
标签: c# asp.net asp.net-mvc linq entity-framework