Ну, это выглядит как выражение запроса:
var q = from grade in db.Grades
where grade.grade <= 'B'
join student in db.Students on grade.studentid equals student.studentid
join course in db.Courses on grade.coursecode equals course.coursecode
select new { student.studentname, course.coursename, grade.grade };
(я бы обычно использовал имя переменной query
вместо q
- я только что использовал q
для форматирования здесь.)
Вы могли бы перевести это в явные Join
вызовы с лямбда-выражениями, но я настоятельно рекомендую вам использовать выражения запросов для сложных запросов, подобных этой.
Обратите внимание, что я изменил порядок запроса, чтобы выражение "where" могло быть выражено настолько просто и эффективно, насколько это возможно. По всей вероятности, планировщик запросов SQL все равно оптимизировал бы его, но для чего-то вроде LINQ to Objects это помогло бы.