我在实体框架代码优先对象的层次结构如下:LINQ最大孙子
class Parent {
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
class Child {
public int Id { get; set; }
public int ParentId { get; set; }
public virtual ICollection<Grandchild> Grandchildren { get; set; }
}
class Grandchild {
public string Name { get; set; }
public int Age { get; set; }
}
我想要检索的父母的名单和他们的大孙子的年龄。如果我有2个父母在我的数据库,每个父母有2个孩子,每个孩子有2个孩子:
Parent 1
Child 1
Grandchild 1 - Age 10
Grandchild 2 - Age 15
Child 2
Grandchild 3 - Age 3
Grandchild 4 - Age 7
Parent 2
Child 3
Grandchild 5 - Age 1
Grandchild 6 - Age 9
Child 4
Grandchild 7 - Age 18
Grandchild 8 - Age 16
我想查询返回两个对象:
var expected = new List<anon>
{
new { Name = "Parent 1", MaxAge = 15 },
new { Name = "Parent 2", MaxAge = 18 }
};
我怎么可以这样写在LINQ to Entities中?
编辑
此外,是否有可能与他们的年龄一起返回grandchilds名字?基本上有孙子的最大年龄和那个孙子是谁?
我假设有可能为孩子不要有孙子(空)? – 2012-03-12 14:10:21
另外你说的LINQ to Entities,还有数据库,我假设你已经读过这些实体并将它们存储在列表或其他东西中? –
2012-03-12 14:11:20
他们在DbSet –
Dismissile
2012-03-12 14:12:02