【问题标题】:EF CTP5 - Strongly-Typed Eager Loading - How to Include Nested Navigational Properties?EF CTP5 - 强类型急切加载 - 如何包含嵌套导航属性?
【发布时间】:2024-01-21 10:01:01
【问题描述】:

尝试将我们的 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.CitiesICollection<City>,因此我不能这样做:

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

因为ICollection<City> 没有名为State 的属性。

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

有什么想法吗?在这种情况下我需要回退到魔术字符串 Include 吗?

【问题讨论】:

    标签: entity-framework poco eager-loading entity-framework-ctp5


    【解决方案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/…
    最近更新 更多