1

3 つのテーブル (学生、コース、および 3 番目の StudentsCourses 割り当てテーブル) を使用した従来の多対多のシナリオがあります。

新しいプロジェクトで EF を使用していますが、EF デザイナーは 3 番目のテーブルを作成しません。割り当てられた学生の数とともにすべてのコースを選択する必要があります。プレーン SQL の使用は非常に簡単です。

select c.Id, c.Name, Count(sc.*) as StudentCount 
from Courses c left join StudentCourses sc on(c.Id=sc.CourseId)
group by c.Id, c.Name

しかし、このクエリを Linq to SQL に変換する方法がわかりません。ご意見をお聞かせください。

ありがとうございました。

4

2 に答える 2

2

EF デザイナーはテーブルを非表示にします。それはまだそこにありますが、関連付けを作成するだけなので、コースから学生を参照したり、その逆を行うことができます。

于 2009-01-22T22:01:48.013 に答える
0

次のようなことができます。

var list = from c in context.Courses
           from s in c.Students
           select new
           {
             StudentName=s.Name,
             Class=s.Class,
           };

詳細については、このページをご覧ください

于 2010-09-22T12:11:39.777 に答える