0

我有 2 个表:汽车和汽车历史,表 Car 中的字段:

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 中做到这一点?

4

1 回答 1

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没有匹配的car history内容,则需要将其设为左外连接

于 2013-08-21T02:41:52.347 回答