0

我正在使用 ASP.NET MVC、C# 和 SQL Server。

我想获得在特定日期内可供出租的汽车列表,即。还没出租。

我现在得到的类似于从汽车表中取出所有汽车,除了在指定日期有订单的汽车(而不是单独检查每辆汽车的订单):

var query = db.Cars.Select(r => r.ID)
    .Except(db.Orders
        .Where(o => (startDate >= o.RentalStart 
            && startDate <= o.RentalReturn))
                Select(r => r.Car.ID));

问题是我想返回一个自定义对象,我不确定如何使用 except,所以我总是可以获取 ID,并基于 ID 使用不同的方法/查询获取整个对象。

但我想得到类似的东西:

Select(c => new myModel
{
    ID = c.ID,
    property1 = c.property1,
    property2 = c.property2,
    property3 = c.property3,
    property4 = c.property4,
});
4

1 回答 1

0

您可以做的是过滤CarsID 不包含在无效订单 ID 集中的列表。

var invalidOrders = db.Orders
    .Where(o => startDate >= o.RentalStart && startDate <= o.RentalReturn)
    .Select(r => r.Car.ID)

var query = db.Cars.Where(car => !invalidOrders.Contains(car.ID));
于 2014-08-25T16:17:39.273 回答