LINQ过滤器范围日期与选择案例

时间:2013-08-21 02:24:12

标签: c# asp.net-mvc linq

我有两张桌子:汽车和汽车历史, 表中的字段:

Car_ID Int
APP_DT DateTime

表中的字段汽车历史:

Car_ID Int
Action String
Created_DT Datetime

我必须过滤app_dt和Created_dt之间的重叠日期,

(App_DT <= End) && (Created_dt >= Start && action == 'Closed')
然而,这辆车还没有关闭,所以历史上没有数据。

如果汽车尚未关闭,那么Created_dt也会成立......我怎么能在LINQ中做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以为此

使用Join语句
var cars = from car in CarList //List<Car>
           join carHistory in CarHistoryList //List<CarHistory>
                on car.Car_ID equals carHistory.Car_ID
           where car.App_DT <= End && carHistory.Created_dt >= Start 
                 && carHistory.Action == 'Closed'
           select car;

如果您知道需要返回没有匹配cars的{​​{1}},则需要将其设为left outer join