EF CTP5 - 强类型急切加载 - 如何包含嵌套导航属性?
Posted
技术标签:
【中文标题】EF CTP5 - 强类型急切加载 - 如何包含嵌套导航属性?【英文标题】:EF CTP5 - Strongly-Typed Eager Loading - How to Include Nested Navigational Properties? 【发布时间】:2011-06-16 05:49:09 【问题描述】:尝试将我们的 EF4 解决方案转换为 EF CTP5,但遇到了问题。
这是模型的相关部分:
相关关系: - 一个县拥有许多城市 - 一个City有一个single State
现在,我想执行以下查询: - 获取系统中的所有县,包括所有城市,以及这些城市的所有州。
在 EF4 中,我会这样做:
var query = ctx.Counties.Include("Cities.State");
在 EF CTP5 中,我们有一个强类型的 Include,它接受 Expression<Func<TModel,TProperty>>
。
我可以得到县的所有城市没问题:
var query = ctx.Counties.Include(x => x.Cities);
但是我怎样才能获得这些城市的 State 呢?
我使用的是纯 POCO,所以 County.Cities
是 ICollection<City>
,因此我不能这样做:
var query = ctx.Counties.Include(x => x.Cities.State)
因为ICollection<City>
没有名为State
的属性。
这几乎就像我需要使用嵌套的 IQueryable。
有什么想法吗?在这种情况下我需要回退到魔术字符串 Include 吗?
【问题讨论】:
【参考方案1】:为此,您可以使用 Select 方法:
var query = ctx.Counties.Include(x => x.Cities.Select(c => c.State))
Here你可以再找一个例子。
【讨论】:
聪明!现在正在尝试...敬请期待。 效果很好,谢谢大家! +1 并接受。最近没有看到你回答很多 EF4 问题 - Ladislav 让我们俩都失望了。 :) 没问题的哥们!那是因为我完全专注于 EF Code First 问题。我希望你也开始使用它,因为我仍然在你的问题上看到 EDMX 文件:) 是的,我能说什么 - 我喜欢漂亮的图表。 :) 需要您的帮助(如果可以的话)。 :) 查看我的(相关)问题 - ***.com/questions/5189268/…以上是关于EF CTP5 - 强类型急切加载 - 如何包含嵌套导航属性?的主要内容,如果未能解决你的问题,请参考以下文章