29

EF4ソリューションをEFCTP5にカットオーバーしようとしましたが、問題が発生しました。

モデルの関連部分は次のとおりです。

ここに画像の説明を入力してください

関連する関係:-単一のには多くの都市があります -単一の都市には単一の州があります

ここで、次のクエリを実行します。-システム内のすべての郡を取得し、すべての都市と、それらの都市のすべての州を含めます。

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.CitiesですICollection<City>。したがって、これを行うことはできません。

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

Asには。ICollection<City>というプロパティがありませんState

ネストされたIQueryableを使用する必要があるようなものです。

何か案は?このシナリオに含めるマジックストリングにフォールバックする必要がありますか?

4

1 に答える 1

52

そのためには、 Selectメソッドを使用できます。

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

ここに別の例があります。

于 2011-01-27T02:48:02.710 に答える