■98911 / ) |
Re[1]: EFでのUpDate文 |
□投稿者/ WebSurfer (2409回)-(2022/01/18(Tue) 13:43:17)
|
■No98908 (初心のもの さん) に返信
基本は、以下の記事に書かれているように、
エンティティの状態の操作
https://docs.microsoft.com/ja-jp/ef/ef6/saving/change-tracking/entity-state
(1) INSERT の場合は「新しいエンティティをコンテキストに追加する」のセクションに
書かれているように、エンティティの状態を Added にしてコンテキストに SaveChanges
メソッドを適用する、
(2) UPDATE の場合は「既存の変更済みエンティティをコンテキストにアタッチする」の
セクションに書かれているように、エンティティの状態を Modified にしてコンテ
キストに SaveChanges メソッドを適用する
・・・です。
エンティティの状態を Modified にするには、上の記事に書かれている方法の他に、
諮問者さんのケースでは変数 patient にコンテキストに追跡されているエンティ
ティを取得しているので、そのプロパティを書き換えることで可能です。
例えば、PatientsName1, PatientsName2 などのプロパティがあるとすると、else の
ところで以下のようにプロパティに代入にしてやれば、そのエンティティの状態は
Modified になります。
else //ここがUpdate文のつもり
{
patient.PatientsName1 = nBox1.Text,
patient.PatientsName2 = nBox2.Text,
// ・・・中略・・・
}
pdbContext.M_Patient.Add(add_Patient); とかは不要です。
代入した値が前の値と違えば状態は Modified になるので、その後、即 SaveChanges
で UPDATE されるはずです。お試しください。
|
|