C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 172 を表示中)
■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 されるはずです。お試しください。


返信 編集キー/


管理者用

- Child Tree -