2011-11-13 51 views
1

我正在使用WPF和EF 4.2构建桌面应用程序。我有3个实体有层叠的一对多关系,学生有零或更多的学校。学校有零或以上的班级出席。我需要在显示学生,所有学校和所有课程的分组列表中显示数据。带嵌套列表的EF 4.1数据的Linq查询

Students   School   Class 
int Id   int Id   int Id 
string Name  string Name  string Subject 
int yearBorn  string Address int Credits 
IList<School>  IList<Class> 

我很困惑如何塑造数据。

第一个问题是EF 4.2隐藏了Navigation对象中实体的Id,所以我不能将它们用作“group by”中的键。

下一个问题是我不知道如何在组中包含第二级嵌套,因为我还需要像Student.Name或School.Address一样返回对象的属性。

+0

数据模式应该看起来像: – JimBoone

+0

看起来像什么? –

+0

目前尚不清楚您是使用EF 4.1还是EF 4.2。 –

回答

1

您不应该需要Group By - 只需检索其当前对象图中的实体。

的标准是一样的东西

var context = new EntityContext(); 
var students = context.Students.Include("Schools").Include("Schools.Classes"); 
return students; 

这将返回一个包含了一组学生,每个学生都包含一组学校,每个学校都包含一组类的对象图。 '分组'由EF完成 - 这是ORM的目的,它将关系数据库表映射到代码中的对象中。