条件直接在连接后事先筛选后连接,在where后是先连接后筛选,有时候位置不同会导致查询出来的结果也不同。
SQL中写法:
select * from A left join B on a.id=b.aid and b.id>0 where ......
Linq中写法:
from a in db.A join b in db.b.Where(b=> b.id>0) on a.id=b.aid into ab from aAndB in ab.DefaultIfEmpty()
条件直接在连接后事先筛选后连接,在where后是先连接后筛选,有时候位置不同会导致查询出来的结果也不同。
SQL中写法:
select * from A left join B on a.id=b.aid and b.id>0 where ......
Linq中写法:
from a in db.A join b in db.b.Where(b=> b.id>0) on a.id=b.aid into ab from aAndB in ab.DefaultIfEmpty()