目前,我正在运行一些代码,并对此提出了一些疑问。以下是两个LINQ to Entites查询的代码清单。
代码清单A:
IQueryable list =
from tableProject in db.Project
select new {StaffInCharge = (
from tableStaff in db.Staff
where tableStaff.StaffId == tableProject.StaffInChargeId
select tableStaff.StaffName)};
代码清单B:
IQueryable list =
from tableProjectin db.Project
join tableStaff in db.Staff
on tableProject.StaffInChargeId
equal tableStaff.StaffId
select new {StaffInCharge = tableStaff.StaffName};
我想弄清楚,如果我必须从许多其他表中选择许多列,哪一个会更好更快。
感谢。
答案 0 :(得分:1)
这是来自@Tim Schmelter的评论
“文章(实际上是我的SO-Question)与基于LINQ-To-Objects的LINQ-To-DataSet有关。可以通过DBMS以这种方式优化Linq to SQL或Linq to Entities where子句与连接具有相同的性能。“
,链接是 Why is LINQ JOIN so much faster than linking with WHERE? 我认为它非常有用。