【发布时间】:2013-07-11 09:45:32
【问题描述】:
我的项目涉及创建一个新的酒店房间,我的数据库中的 2 个表将更新。我的表称为 RoomType 和 RoomFacility。
我可以成功更新 RoomType,但是当我尝试更新 RoomFacility 并使用 RoomTypeID 创建新的房间设施时,它失败了。我的 RoomFacilityID 总是得到 1。
如何更新两个表、roomType 和 RoomFacility 的数据?
这是我的服务更新我的数据库的代码
public void UpdateFacilityInRooms(List<int> FacilityIDs, int RoomTypeID)
{
List<HotelRoomFacility> hotelRoomFacilities =
_HotelRoomFacilityRopository.AsQueryable()
.Where(f => f.RoomTypeID == RoomTypeID).ToList();
foreach (int newRoomFacility in FacilityIDs)
{
if (hotelRoomFacilities.Where(h => h.RoomFacilityID == newRoomFacility).Count() == 0)
{
HotelRoomFacility facility = new HotelRoomFacility
{
RoomFacilityID = newRoomFacility,
RoomTypeID = RoomTypeID
};
_HotelRoomFacilityRopository.Add(facility);
}
}
_HotelRoomFacilityRopository.CommitChanges();
}
public RoomType NewRoom(int HotelID,int? RoomTypeID,
string RoomTypeName, string RoomTypeDescription)
{
RoomType room = new RoomType();
room.HotelID = HotelID;
room.RoomTypeID = RoomTypeID ?? 0;
room.RoomtypeName = RoomTypeName;
room.RoomTypeDescripton = RoomTypeDescription;
_RoomTypeRepository.Add(room);
_RoomTypeRepository.CommitChanges();
return room;
}
【问题讨论】:
-
您使用的是实体框架,是吗?
-
检查 FacilityID。它是否包含多个元素?
-
你能给我举个例子吗?
-
这段代码很混乱。首先,RoomFacilityID 是 HotelRoomFacility 上的 PK 吗?你能包括定义这个模型的代码吗?其次,由于您的 repo 代码不包含在此处,因此错误可能在 repo 代码本身中,或者与它的不利交互。
标签: asp.net-mvc asp.net-mvc-3 entity-framework asp.net-mvc-4