使用left join和if语句的实体框架查询

时间:2011-06-25 18:52:18

标签: c# .net entity-framework linq-to-entities

我有两张桌子 - 工人和车辆: 车辆(Id,VehicleNumber) 工人(Id,Name,VehicleId)

我需要编写一个获得bool的方法吗?参数“isFree”并使用实体框架(首选lambda而不是linq到实体)以便:
如果isFree == null则返回所有车辆
如果isFree == true则返回所有不属于任何工人的车辆 如果isFree == false则返回属于某个工人的所有车辆

解决此问题的最佳做法是什么?

1 个答案:

答案 0 :(得分:3)

if(!isFree.HasValue)
  return context.Vehicles;
else if(isFree)
  return context.Vehicles.Where(v => !v.Workers.Any());
else
  return context.Vehicles.Where(v => v.Workers.Any());