【发布时间】:2014-10-15 00:39:25
【问题描述】:
我有三个表格:Exam > Objectives > ObjectiveDetails
这是他们的样子:
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; }
}
我应该这样开始考试吗:
var result = await db.Exams
.Where(e => e.Name == name)
或者像这样来自ObjectiveDetails:
var result = db.ObjectiveDetails .. ??
我怎样才能得到一个显示目标和目标细节的对象给定的考试?我应该从 db.Exams 开始还是应该从 db.ObjectiveDetails 开始?我需要做的就是加入(如果在关系唯一的世界中)。但是对于 LINQ,我不知道从哪里开始。
【问题讨论】:
-
你当前的结构看起来不错,如果你从 db.Exam 开始,你会继续。
-
@KrunalPatil - 但是如果我从 db.Exam 开始,那么我该如何加入其他对象?
标签: c# sql asp.net linq entity-framework