2016-11-07 8 views
1

これはKeuringクラスであり、linqを使用してTestresultatenコレクションプロパティのナビゲーションアイテムを含む問題があります。ここでICollectionにナビゲーション小道具を含む

public partial class Keuring 
{ 
    public Keuring() 
    { 
     Testresultaten = new HashSet<Testresultaten>(); 
    } 

    //Simple properties here 

    //Complex properties below 
    public virtual ICollection<Testresultaten> Testresultaten { get; set; } 
    public virtual Gereedschap Gereedschap { get; set; } 
} 

Testresultatenクラスである:ここでは

Gereedschapクラスです:

public partial class Gereedschap 
{ 
    public Gereedschap() 
    { 
     Keuring = new HashSet<Keuring>(); 
    } 

    //Simple properties here 

    //Complex properties below 
    public virtual ICollection<Keuring> Keuring { get; set; } 
    public virtual Debiteur Debiteur { get; set; } 
} 

この文は正常に動作します:

var keuringEntry = db.Keuring.Include(item => item.Gereedschap).Include(item => item.Testresultaten).SingleOrDefault(item => item.key = "keyvalue"); 

しかしとき私はこのような余分なIncludeを追加します。
Include(item => item.Testresultaten.Select(subItem => subItem.Test))
文がエラーを与える:

var keuringEntry = db.Keuring.Include(item => item.Gereedschap).Include(item => item.Testresultaten.Select(subItem => subItem.Test)).SingleOrDefault(item => item.key = "keyvalue"); 

エラー:X => {Testresultatenサブアイテムから プロパティ式を」[X]で[サブアイテム]を選択し.Testresultaten .Test} 'は無効です。式はプロパティへのアクセスを表す必要があります: 't => t.MyProperty'。

TestresultatenクラスのTestは、プロパティでありフィールドではありません。私は間違って何をしていますか? GereedschapKeuring

+0

とテストは、モデル内のエンティティのですか? – octavioccl

+0

['ThenInclude'](https://docs.efproject.net/en/latest/querying/related-data.html#id2)をご覧ください –

+0

はい、エンティティです –

答えて

0

のようにアクセスできます。以下のようにする必要があります。

var keuringEntry = db.Keuring.Include(item => item.Gereedschap) 
        .Include(item => item.Testresultaten) 
         .ThenInclude(subItem => subItem.Test) 
        .FirstOrDefault(item => item.key = "keyvalue"); 

Refernce:Including multiple levels

関連する問題