2

.Include()このネストされた関係にアクセスできるようにするための使用方法がわかりません。最も直接的な方法と思われる方法を試しましたが、インテリセンスが入力されず、リレーションを手で入力するとコンパイルエラーが発生します。

私はこのdbマップ設定を持っています

public class W
{
 public int WId { get; set; }
 public virtual ICollection<T> Ts { get; set; }
}

public class T
{
 public int TId { get; set; }
 public int WId { get; set; }
 public int CId { get; set; }
 public virtual W W { get; set; }
 public virtual C { get; set; }
}

public class C
{
 public int CId { get; set; }
 public virtual ICollection<T> Ts { get; set; }
}

クエリを実行する get メソッドがあります

//set in constructor
DbSet<W> dbSet;
DbContext context;

//called in method
IQueryable<W> query = dbSet;
query = query.Include(w => w.Ts);//works
query = query.Include(w => w.Ts.C); //I wanted to do this but it doesn't work

このように使用できます.Include()か?

問題なく動作するように見えましたが、どうやら私のやり方が間違っているようです。Ts コレクションを反復処理してから、毎回 C を手動で入力する必要はありません。

4

1 に答える 1

4

次の構文を使用できます。

query = query.Include(w => w.Ts.Select(t => t.C));
于 2012-05-07T19:27:54.917 に答える