0

ASP.NET MVC、C#、および SQL Server を使用しています。

特定の日付内にレンタル可能な車のリストを取得したい。まだ貸し出していません。

私が今得たのは、指定された日付に注文があるものを除いて、cars テーブルからすべての車を取得するようなものです (各車を個別に注文をチェックするのではなく):

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

できることは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));
于 2014-08-25T16:17:39.273 に答える