我的项目是Windows应用程序c#,我使用实体框架5和.net 4.5。实体框架 - 如何将多个更改(添加,更新,删除)保存到数据库(主细节)
我房间和床铺模块,您可以添加,编辑和删除间(S)和/或床(S)
我的形式我有RoomNo和站场,还添加和删除按钮添加/删除床(县)datagridview的,然后保存按钮保存床的房间和列表到DB
DB Structure
Rooms (table)
PK_Rooms
FK_Station
RoomNo
Beds (table)
PK_Beds
FK_Rooms
BedNo
FullRoomNo (concat only of Roomno and Bedno)
RoomStatus
我已经实施的“AddRoom”的方法,这将创造新的房间和床的列表。
我的问题是我如何实现“EditRoom”方法,它会检测床上的变化(添加一张新床,和/或编辑床号和/或删除床)并将其保存到数据库?
为了有更好的理解我的关心,请参见前面的线程,也有AddRoom法> Entity Framework only saving last row (master details)
编辑: 这里是我的代码EditRoom方法
M3dEntities m3d = new M3dEntities();
rooms rooms = new rooms();
beds beds = new beds();
string RoomNo = RoomNoTxt.Text;
int StationID = Int32.Parse(StationCmb.SelectedValue.ToString());
int _SelectedPKRoom = Int32.Parse(SelectedPKRoom);
rooms = m3d.rooms.First(x => x.PK_Rooms == _SelectedPKRoom);
{
rooms.RoomNo = RoomNo;
rooms.FK_Stations = StationID;
}
foreach (DataGridViewRow row in BedsDataGridView.Rows)
{
beds = new beds();
beds.Bedno = row.Cells[0].Value.ToString();
beds.FullRoomNo = row.Cells[1].Value.ToString();
beds.RoomStatus = "Available";
m3d.beds.AddObject(beds);
m3d.beds.DeleteObject(beds);
}
m3d.SaveChanges();
的此代码的问题是只有空间正在更新:(
您能告诉我们您开始使用的'EditRoom'方法吗? – CodeNotFound
[使用WinForms实体框架数据绑定](https://msdn.microsoft.com/en-us/data/jj682076.aspx)本分步演练演示如何将实体绑定到WinForms控件的“主细节“表格 –
@ RezaAghaei会尝试你的建议,如果我得到了它,我会更新你的答案:)谢谢 – Henry