将Join SQL转换为LINQ-to-SQL方法语法

时间:2013-02-14 06:49:47

标签: linq-to-sql

我有一个MVC 4 Web API存储库,可以使用Linq to SQL方法语法从数据库中检索数据。我到目前为止的代码(它并不多)用于实用程序:

public IQueryable<Vehicle> Vehicles(int driverId_Vehicles)
{
    ...?...
}

我已经整理了一个SQL查询,它将从数据库中获取数据:

SELECT VEHICLE.*
FROM Vehicle
INNER JOIN DriverHabit
ON VEHICLE.Id=DriverHabit.VehicleId
WHERE DriverHabit.Id = driverId

我需要帮助将此查询转换为LINQ方法语法以返回IQueryable。

2 个答案:

答案 0 :(得分:1)

看起来关联Vehicle - DriverHabit是1:n。您的DriverHabits课程中应该有一个导航属性Vehicle,因此您无需加入。只需访问导航属性。

答案 1 :(得分:0)

SELECT VEHICLE。* 来自车辆 INNER JOIN DriverHabit ON VEHICLE.Id = DriverHabit.VehicleId WHERE DriverHabit.Id = driverId

var vehicle = from v in _context.vehicle              
          join dh in _context.driverhabit on v.Id equals dh.VehicleId
          where dh.Id = driverId
          select { v, dh }

return vehicle.ToList();