2016-12-06 7 views
0

whereの条件を使用するにはどうすればよいですか? ProgressItemsはICollection <>オブジェクトです。私は、フィルタリングされたアイテムを持つゴールオブジェクト全体を取得したい。どうすれば解決できますか?linqの条件が含まれている場所を使用します。

 return _dbContext.Goals 
      .Include(p => p.GoalExpectation) 
      .Include(p => p.ProgressItems.Where(r => r.Value > 100)) 
      .SingleOrDefault(p => p.Id == id); 

私はインクルードパス式は、ナビゲーションプロパティを参照する必要があります タイプに定義されたような例外

を取得します。参照ナビゲーション のプロパティとコレクションのナビゲーションのSelect演算子 プロパティには、点線のパスを使用します。パラメータ名:パスあなたは、あなたがフィルターに含まれているアイテムを取得し、あなたの目標のオブジェクトにそれを割り当てることができますクエリを使用して、それを制限する必要があるだろうことはできません

+0

Linq To SQLおよびEntity Frameworkは、フィルタ処理されたインクルードをサポートしていません。 –

答えて

1

includeステートメントにはナビゲーションプロパティが必要です(エラーが示すとおり)。確かに構文的に正しいと思われますが、Whereはナビゲーションプロパティを返さないため、セメント的に間違っているようです。

関連する問題