【问题标题】:entity framework query using left join and if statement使用左连接和 if 语句的实体框架查询
【发布时间】:2011-06-25 18:52:17
【问题描述】:

我有两张桌子——工人和车辆: 车辆(ID,车辆编号) Workers(Id, Name, VehicleId)

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

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

【问题讨论】:

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


    【解决方案1】:
    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());
    

    【讨论】:

    • 我忘了我可以将导航属性添加到 Vehicle 即使引用在工作表中!
    猜你喜欢
    • 2020-10-06
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多