29

试图将我们的 EF4 解决方案转换为 EF CTP5,但遇到了问题。

这是模型的相关部分:

在此处输入图像描述

相关关系: - 一个多个城市 - 一个城市有一个

现在,我想执行以下查询: - 获取系统中的所有县,并包括所有城市,以及这些城市的所有州。

在 EF4 中,我会这样做:

var query = ctx.Counties.Include("Cities.State");

在 EF CTP5 中,我们有一个强类型的 Include,它需要一个Expression<Func<TModel,TProperty>>.

我可以毫无问题地为县获得所有城市:

var query = ctx.Counties.Include(x => x.Cities);

但是我怎样才能获得这些城市的状态呢?

我使用的是纯 POCO,所以County.CitiesICollection<City>,因此我不能这样做:

var query = ctx.Counties.Include(x => x.Cities.State)

AsICollection<City>没有名为 的属性State

这几乎就像我需要使用嵌套的 IQueryable。

有任何想法吗?在这种情况下,我是否需要回退到魔术字符串 Include ?

4

1 回答 1

52

为此,您可以使用Select方法:

var query = ctx.Counties.Include(x => x.Cities.Select(c => c.State))

在这里你可以找到另一个例子。

于 2011-01-27T02:48:02.710 回答