使用'来自'加入多对多表时是否有区别?条款,或者加入'条款?返回的结果集是相同的。
例如,在多对多关系中包含三个表(包括联结表):学生,学生课程,课程:
var query = from student in context.Students
from studentcourse in student.StudentCourses
where studentcourse.CourseID == 4
select student;
var query = from student in context.Students
join studentcourse in context.StudentCourses
on student.StudentID equals studentcourse.StudentID
where studentcourse.CourseID == 4
select student;
我避免使用Include有两个原因:
答案 0 :(得分:0)
在内部,LINQ to Entities将创建两个不同的查询,其中第一个示例将使用WHERE,第二个示例将加入表。但是,这对性能没有影响,因为SQL优化器将为这两个查询创建相同的执行计划。见Inner join vs Where
明智的最佳做法,第一种选择几乎总是可取的。使用导航属性可以使您的代码更易于阅读和理解,并消除了必须自己加入表格的麻烦。