2012-03-27 7 views
1

私のリポジトリでは、TransportedMaterialテーブルからデータを取得します。また、このリンクされたテーブル内のすべての関連データを取得するためにTransportedMaterialPackingをインクルードします。この最後の表では、関連するMaterialPackingデータも取得したいと考えています。 どのようにわからないのですか?我々はMaterialPackingは(それが満たされていない)nullであることがわかり上の写真でリポジトリを照会するときに関連するエンティティを埋める

enter image description here

public class TransportedMaterialPacking 
{ 
    public int TransportedMaterialPackingID { get; set; } 
    public MaterialPacking MaterialPacking { get; set; } 
    public double Quantity { get; set; } 
    public double? Width { get; set; } 
    public double? Height { get; set; } 
    public double? Length { get; set; } 
} 

public class MaterialPacking 
{ 
    public int MaterialPackingID { get; set; } 
    public string DescriptionFr { get; set; } 
    public string DescriptionNl { get; set; } 
} 

関係はこのようなものです::

TransportedMaterial >> TransportedMaterialPacking >> MaterialPacking

public static class ORMExtensions 
{ 
    public static IQueryable<T> MyInclude<T, C>(this IQueryable<T> source, Expression<Func<T, C>> function) 
     where C : class 
     where T : class 
    { 
     return source.Include(function); 
    } 

私は、エンティティフレームワークを使用

はここでモデルです。

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

+0

「MyInclude」とは –

+0

@DarinDimitrov:MyIncludeコードを表示するように質問を更新しました。 – Bronzato

答えて

0

質問に「foo.Include("NavigationProperty.SubNavigationProperty")」のようなコードを入力すると「カスケード」できます。

プロパティの表記法を使用してナビゲーションサブプロパティを含めることは可能です。たとえばthisを参照してください。

+0

frookypoon:x => x ....という名前で 'カスケード'することは可能ですか? – Bronzato

+0

frookypoon、DarinDimitrov:私のクエリで.Include(...)を使用しようとするとコンパイル時にエラーが出る。私はなぜか分かりませんが、インクルードは問題ですが、私のカスタム関数MyIncludeは動作しますが(マルチカスケードはできません)。 – Bronzato

+0

@Bronzato私は自分の答えを更新しました。キーは基本的に 'Select'を使うことです。 – kprobst

0

あなたが.INCLUDE(X => x.nav1.nav2)が

を動作する場合、私は知らない関連企業

をロードするために.INCLUDE( "nav1.nav2")を行うことができるかもしれません

関連する問題