我正在使用EF Code First。现在,我很难弄清楚如何编写LINQ以将数据检索到我的Controller中的模型中,以便在视图中显示它们。基本上,我收到HolterTest数据源,并且正在尝试为执行一系列特定任务来处理HolterTest的人创建一个工作列表,允许他们在任务完成时标记任务,并提供状态单个测试正在进行中基本的Task类是这样的,它们可以添加或改变流程中的步骤,而displayOrder则是任务完成的顺序。 WorkTask是一项任务的特定实例,允许我们标记谁完成了它,以及何时完成。 WorkItem是包含HolterTest,WorkTasks列表和状态信息(包括WorkTasks全部完成时)的复杂类型。如何编写Linq查询以获取复杂模型项目?
模型类:
public class HolterTest
{
public Int32 HolterTestID { get; set; }
public string PatientNumber { get; set; }
public string LastName { get; set; }
public DateTime RecordingStartDateTime { get; set; }
public System.Nullable<DateTime> AppointmentDateTime { get; set; }
}
public class Task
{
public Int32 TaskID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Int32 DisplayOrder { get; set; }
public bool IsActive { get; set; }
}
public class WorkTask
{
public Int32 WorkTaskID { get; set; }
public Task Task { get; set; }
public bool IsCompleted { get; set; }
public System.Nullable<DateTime> CompletedDateTime { get; set; }
public string CompletedBy { get; set; }
}
public class WorkItem
{
public Int32 WorkItemID { get; set; }
public HolterTest HolterTest { get; set; }
public string Status { get; set; }
public List<WorkTask> WorkTasks { get; set; }
public bool IsStarted { get; set; }
public bool IsCompleted { get; set; }
public System.Nullable<DateTime> CompletedDateTime { get; set; }
}
目前,我有一个业务逻辑函数,它HolterTests的名单,发现没有一个工作项的那些,并创建工作项,在HolterTests包括WorkTasks关联,基于任务的当前活动列表。
我的问题是如何编写LINQ以获取WorkItemController的所有WorkItems(及其子项),以便我可以在PatientNumber中显示要在View(WorkItems其中IsCompleted = false)中执行的工作,并使有可能为特定的WorkItem更新WorkTasks。
谢谢,马克。起初我并不了解导航项目,因为它与我以前的工作不同(我们使用NHibernate而不是EntityFramework,使用不同的数据库等),这有很大帮助。 – 2013-02-22 14:55:31