我希望能夠返回可在特定日期之間自由預訂的Vehicle對象列表。實體框架不會比較在不同時間返回的相同對象
我有一種方法可以返回那些日子之間當前在數據庫中的預訂列表,並且每個預訂都有一個相關的車輛對象,所以我知道所有不可用的車輛。
我有另一種方法,返回數據庫中的所有車輛的列表,但我需要一種方式比較Booking.Vehicle與從列表中返回的車輛對象。
我想這
foreach(var booking in bookings)
{
allVehicles.Remove(booking.Vehicle)
}
但車輛不會刪除,爲什麼對象不能正確進行比較?儘管它的車輛物件被移除。
//Testing to see if the objects compare as expected (they don't)
public static List<Vehicle> AvaliableVehiclesBetween(DateTime StartDate, DateTime EndDate)
{
List<Booking> bookings = Booking.BookingsBetween(StartDate, EndDate);
List<Vehicle> vehicles = AllVehicles();
Vehicle v = vehicles[0];
if(bookings[0].Vehicle.Equals(v)) {
vehicles = null;
}
return vehicles;
}
我運行這個車後不等於null;
我覺得你的代碼是預約ID的比較車輛的ID,這將產生不正確的結果。 – danludwig 2013-03-12 12:42:51
@ danludwig - 良好的捕捉,編輯。 – 2013-03-13 15:31:27
另外一個捕獲 - 因爲'presetIDs'不會用於集合操作('.Add','.Remove'等),所以使用'.ToArray()'而不是'.ToList()'。如果'.Contains(v.ID)'是唯一使用它的地方,你甚至可以完全忽略它,因爲在這種情況下它將被自動枚舉。 – danludwig 2013-03-13 15:52:12