如何在LINQ查询中有条件地联接?
如果我有两张桌子;驱动程序由DriverId设置密钥,Trips使用外键DriverId和CoDriverId,我希望找到驱动程序是驱动程序或副驱动程序的所有Trips,我可以在Transact-SQL中将其编码为如何在LINQ查询中有条件地联接?,linq,join,conditional,Linq,Join,Conditional,如果我有两张桌子;驱动程序由DriverId设置密钥,Trips使用外键DriverId和CoDriverId,我希望找到驱动程序是驱动程序或副驱动程序的所有Trips,我可以在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查询?不能使用LIN
select d.DriverId, t.TripId
from Trips t inner join Drivers d
on t.DriverId = d.DriverId or t.CoDriverId = d.DriverId
如何将其编码为LINQ查询?不能使用LINQ连接,基本上-LINQ只直接支持Equijoin 但是,您可以执行以下操作:
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中很可能会使用相同的联接。基本上与我们开始使用联接关键字之前的旧SQL语法相同。