【发布时间】:2016-03-02 23:41:18
【问题描述】:
大家!我正在尝试做一个相当简单的 LINQ 查询来查找酒店的可用房间。 (也就是说,从房间池中找到一个可用的房间,并检查房间中是否有待清洁等)。
但是当我尝试执行第三个查询时,我得到了您在标题中看到的异常。当我执行它时,我实际上并没有得到异常,但是当我尝试使用“unfinishedTasksInPool”变量时。
我尝试将“unfinishedTasksInPool”变成一个列表,也看看这是否有帮助,但每当我尝试使用“unfinishedTasksInPool”时,我都会收到异常。
编辑:每当我在第三个查询的 where 子句中排除“availableRoomsFromPool.Contains(tasks.roomId”时,一切似乎都正常。但这并不能完全解决问题。
var pendingReservation = database.Reservations.Where(res => res.reservationID == resId).First();
var reservationsInSameGroup = from otherReservations in database.GetTable<Reservation>()
where (otherReservations.beds == pendingReservation.beds
&& otherReservations.rank == pendingReservation.rank
&& otherReservations.roomID != null)
select otherReservations.roomID;
var availableRoomsFromPool = from rooms in database.GetTable<Room>()
where (!reservationsInSameGroup.Contains(rooms.roomId)
&& rooms.beds == pendingReservation.beds
&& rooms.roomRank == pendingReservation.rank)
select rooms.roomId;
var unfinishedTasksInPool = from tasks in database.GetTable<HotelTask>()
where (availableRoomsFromPool.Contains(tasks.roomId)
&& tasks.taskStatus < 2)
select tasks.roomId;
【问题讨论】:
-
什么是
pendingReservation.beds? -
是房间的床位数。
标签: linq linq-to-sql