私のプロジェクトはWindowsアプリケーションです。#、私はEntity Framework 5と.net 4.5を使用しています。Entity Framework - DBに複数の変更(追加、更新、削除)を保存する方法(マスター詳細)
は、私はあなたが私のフォーム上のルーム(複数)および/またはベッド(複数可)
を追加、編集、削除することができます部屋やベッドモジュールを持っている私はRoomNoと駅のためのフィールドを持って、また追加と削除ボタンをDataGridViewのためにベッド(複数可)を追加/削除するために、私はすでに新しいルームとベッドのリストを作成します「AddRoom」メソッドを実装し
DB Structure
Rooms (table)
PK_Rooms
FK_Station
RoomNo
Beds (table)
PK_Beds
FK_Rooms
BedNo
FullRoomNo (concat only of Roomno and Bedno)
RoomStatus
DBへのベッドの部屋とリストを保存するためにボタンを保存します。
私の質問はどのようにベッド上の変更を検出する(新しいベッドを追加し、そして/またはベッド番号を編集し、そして/またはベッドを削除した)EditRoomメソッドを実装してDBに保存することができますか?私の懸念に理解を持っている
も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を使用したEntity Frameworkデータバインディング](https://msdn.microsoft.com/en-us/data/jj682076.aspx)このステップバイステップのチュートリアルでは、エンティティをWinFormsコントロールに「マスター詳細「フォーム。 –
@RezaAghaeiがあなたの提案をしようとします。私はそれが:)感謝 – Henry