当前位置: 代码迷 >> LINQ >> 关于join跟where
  详细解决方案

关于join跟where

热度:11307   发布时间:2013-02-26 00:00:00.0
关于join和where
这两行代码有什么不同
var query = users.Select(x => new { User = x, Orders = orders.Where(y => y.UserID == x.ID) });

var query = from x in users
            join y in orders on x.ID equals y.UserID into j
            select new { User = j.x, Orders = j };

------解决方案--------------------------------------------------------
join是基于hash的,在数据库中翻译成sql的join
where是基于比较的,在数据库中翻译成sql的子查询,性能要低。

------解决方案--------------------------------------------------------
第一句翻译成sql的话其实就是sql里的left join
  相关解决方案