/ /エンティティフレームワーク多対多クエリ-vb.net、entity-framework、linq-to-entities、entity-framework-6

エンティティフレームワーク多対多クエリ - vb.net、エンティティフレームワーク、linq-to-entities、エンティティフレームワーク-6

エンティティでクエリを作成するのに苦労しています私が設定した多対多の関係を扱うフレームワーク。私がやりたいのは、TableBとの関係に属するTableAからアイテムを取得すると同時に、結果からどの関係が正しい一致であったかを知ることです。

たとえば、学生とコースを使用している場合、一連のコースに含まれるすべての学生を探し、一致したコースのみを返したいと思います。学生のリストを取得するためにCoursesナビゲーションプロパティを見るだけで簡単に実行できるため、特に学生からクエリを開始したいと思います。

私が欲しいのは、各学生が私のクエリにコースのセットのみを含む学生のリストです(学生が受講しているすべてのコースではありません)。

以下のようなものが近いです、私は得ます学生の正しいリストですが、コースのナビゲーションプロパティには、クエリのサブセットではなく、すべてのコースが表示されます。可能であれば再度クエリを実行する必要はなく、必要な学生/コースのセットを返すだけです。

Dim listOfStudents = From s In Students
From c In s.Courses
Where listOfCourseIds.Contains(c.CourseId)

回答:

回答№1は0

2つの間にジャンクションテーブルがない場合は、次のことを試してください。

from s in dc.Students
from c in s.Courses
where c.CourseID == courseID
select s;

エンティティに2つの間にジャンクションテーブルがある場合は、次を試してください。

from s in dc.Students
from e in s.StudentsCourses
where e.Course.CourseID == courseID
select s;