2017-11-29 5 views
0

持つプロパティを見つけるインストラクターオブジェクトは(エンティティ・フレームワークを使用して)関連オブジェクト有する:IEnumerable<Course> Courses を各コースには、titleプロパティを有する:string CourseTitleループ<br> IがのIQueryableクエリを有するのIQueryableサブオブジェクトを通って値

タイトルにabcという文字列が含まれているすべてのコースをフィルタリングしようとしています。

私はかなりの不確実だアプローチ以下試してみました:私は、ラムダ式を使用してそれをやって好む

query = from i in query.SelectMany(p => p.Courses) 
     .Where(j => j.CourseTitle.Contains(courseTitle)) 

+0

エンティティフレームワーク? –

答えて

0

質問と例が一致するため、courseTitle = "abc"と表示されるはずです。

var result = from x in query 
      from course in x.Courses 
      where course.CourseTitle.Contains(courseTitle) 
      select x; 

か...

var result = query.SelectMany(x => x.Courses, (x, course) => new {x, course}) 
        .Where(obj => obj.course.CourseTitle.Contains(courseTitle)) 
        .Select(obj => obj.x); 
+1

最初に解いてくれてありがとうございました。コースオブジェクトのリストを返すので、2番目は使用できません – Ovis

+0

@Ovisあなたは正しいと謝罪しています...私は最初のような質問を正しく実行すると思うlambaのバージョンを更新しました。これはデザイナーがいない私の頭の上から行われたので、私は大失敗している。 –

-1

ラムダ式でLINQ

更新:

query = query.Where(j => j.CourseTitle.Contains("abc")).ToList(); 
+0

私はすでにフィルタリングが必要な特定のクエリを持っているので、dbContextを含めたくないです。 – Ovis

+0

更新を参照してください。 –