Ola*_*Ola 4 .net c# wpf lambda c#-4.0
我基本上希望以下sql查询作为lambda表达式:
SELECT studentname, coursename, grade
FROM student S, course C, grade G
WHERE S.id = G.studentid AND C.coursecode = G.coursecode AND G.grade<='B';
Run Code Online (Sandbox Code Playgroud)
我遇到麻烦,因为我必须一起加入3张桌子.
嗯,看起来像这样的查询表达式:
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 };
Run Code Online (Sandbox Code Playgroud)
(我通常使用变量名query而不是q- 我在q这里仅用于格式化目的.)
您可以将其转换为Join使用lambda表达式的显式调用,但我强烈建议您对这样的复杂查询使用查询表达式.
请注意,我已经更改了查询的顺序,以允许"where"子句尽可能简单有效地表达.很可能SQL查询规划器无论如何都会优化它,但对于像LINQ to Objects这样的东西,这会有所帮助.
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |