我正在使用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));
问题是我想要返回一个自定义对象,我不知道如何使用除了,所以我总是可以获取ID,并且基于ID获取整个对象使用不同的方法/查询
但我希望得到类似的东西:
Select(c => new myModel
{
ID = c.ID,
property1 = c.property1,
property2 = c.property2,
property3 = c.property3,
property4 = c.property4,
});
答案 0 :(得分:0)
您可以做的是过滤Cars
列表,其中ID不包含在无效订单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));