gpt4 book ai didi

c# - 当每种房间类型不止一个时,如何使用 LINQ 查找可用房间?

转载 作者:行者123 更新时间:2023-11-30 15:54:30 25 4
gpt4 key购买 nike

我可以让客户在输入他们选择的日期并指定他们的房间选择后进行预订。正是在这一点上——检查可用性——我使用了以下 LINQ 表达式:

var availRooms = db.Rooms.Where(room => room.RoomTypeID == roomChoiceID)
.Where(m => m.Bookings.All(r => r.Departure <= model.Arrival ||
r.Arrival >= model.Departure));

(roomChoiceID 是通过用户输入的房间选择查询数据库得到的)

在我决定在同一日期预订两间相同房型的房间之前,一切正常。 (例如,预订 2018 年 10 月 6 日至 18 年 6 月 12 日的家庭房工作正常,但随后尝试在这些日期预订第二个家庭房会出错)。我完全不确定如何使用 LINQ 给我房间类型相同的房间(在我的例子中是家庭),并且没有在我输入的日期预订。

最佳答案

var availRooms = db.Rooms.Where(room => room.RoomTypeID == roomChoiceID && (!room.Booking.Any(b => (b.Departure >= model.Departure && b.Arrival <= model.Arrival)));

或者,使用 linq 表达式:

var availRooms = from room in rooms
where room.RoomTypeID == roomChoiceID
&& (!room.Bookings.Any(b => b.Departure >= model.Departure && b.Arrival <= model.Arrival))
select room;

解释:在上面的查询中,它将返回所有在 Arrival 和 Departure 范围内没有预订的房间。

关于c# - 当每种房间类型不止一个时,如何使用 LINQ 查找可用房间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com