如果我有两张桌子; DriverId和Trips使用外键DriverId和CoDriverId键入的驱动程序,我想查找驱动程序是驱动程序或共同驱动程序的所有行程我可以在Transact-SQL中将其编码为
select d.DriverId, t.TripId
from Trips t inner join Drivers d
on t.DriverId = d.DriverId or t.CoDriverId = d.DriverId
如何将其编码为LINQ查询?
答案 0 :(得分:7)
你不能用LINQ连接来做,基本上 - LINQ只直接支持equijoins。
你可以但是:
var query = from trip in db.Trips
from driver in db.Drivers
where trip.DriverId == driver.DriverId ||
trip.CoDriverId == driver.DriverId
select new { driver.DriverId, trip.TripId };
最终可能会在转换后的SQL中使用相同的连接。