2011-01-26 74 views
29

試圖將我們的EF4解決方案切換到EF CTP5,並遇到問題。EF CTP5 - 強類型急切加載 - 如何包含嵌套的導航屬性?

這裏的模型的相關部分:

enter image description here

相關關係: - 單個許多城市 - 單單一國家

現在,我想執行下面的查詢ry: - 獲得所有縣的所有城市,包括所有城市,以及所有州的所有城市。

在EF4,我這樣做:

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

在EF CTP5,我們有一個強類型包括,這需要一個Expression<Func<TModel,TProperty>>

我可以得到所有的城市的縣沒有問題:

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

但我怎樣才能獲得這些城市太國家

我使用純POCO的,所以County.Cities是一個ICollection<City>,因此我不能做到這一點:

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

由於ICollection<City>沒有一個叫State屬性。

這幾乎就像我需要使用嵌套的IQueryable。

任何想法?我需要回退到魔術字符串包括在這種情況下?

回答

51

對於您可以使用您的選擇方法:

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

Here你可以找到另一個例子。

+0

聰明!現在嘗試...敬請期待。 – RPM1984 2011-01-27 02:49:08