2011-01-20 10 views
25

作業コードです。CodeFirst - EntityFrameWorkに複数レベルが含まれています

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).(Include"Contexts.AdditionalProperties.Field"); 

しかし、あなたは、それは我々が「Contexts.AdditionalProperties.Field」内の文字列の文で

をミスを犯した場合、私は以下のコードを書きたい時エラーをコンパイル作り出すことができなかったことを知っています。

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).Include(p => p.Contexts); 

しかし、上記のステートメントはAdditionalPropertiesとFieldを定義する機会を与えられませんでした。

どうすればよいですか?

ビルドクエリに複数のインクルードを記述したいと思います。

ありがとうございました。

答えて

43

additionalpropertiesをが別のオブジェクトへの単一の参照である場合:

IQueryable<Product> productQuery = ctx.Set<Product>() 
     .Include(p => p.Contexts.AdditionalProperties.Select(a => a.Field)) 
     .Where(p => p.Id == id); 

ドン:additionalpropertiesをがコレクションである

using System.Data.Entity; 
... 
IQueryable<Product> productQuery = ctx.Set<Product>() 
     .Include(p => p.Contexts.AdditionalProperties.Field) 
     .Where(p => p.Id == id); 


ならば、あなたは選択メソッドを使用することができますが、インポートを忘れないでくださいSystem.Data.Enti tyあなたのクラスファイルの名前空間!

+1

あなたはそれに私を打ち負かした;) –

+0

私は公正なゲームではないことを伝える必要があります...私は数ヶ月前にこの非常に疑問に答えて以来、ここに。ごめん! –

+0

ありがとうございました! List <>型オブジェクトであるAdditionalPropertiesのどこに別の場所を追加するには? –

関連する問題