我希望能够返回可在特定日期之间自由预订的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