この節では、Entity Frameworkを使ってデータベースのデータを変更する方法を見てみましょう。SQL文でUPDATE文に該当します。
データを更新するにはLINQの命令文ではなく、Entity Data Modelで追加したテーブルに対応するオブジェクトのデータを変更し、その後、DbContextクラスのSaveChangesメソッドでデータベースに反映させます。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | EntityUpdateTest |
○ 作成の準備
「EntityInsertTest」プロジェクトを修正して作成しましょう。EntityInsertTestフォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。
○ プログラム
Mainメソッドを次のように記述してください。
Program.cs
○ 実行結果
次の一覧からパスワードを変更したいIDを選んでください。
ID:1 氏名:佐藤
ID:2 氏名:鈴木
ID:3 氏名:高橋
ID:4 氏名:田中
ID:5 氏名:伊藤
ID:6 氏名:山本
ID:7 氏名:中村
ID:2
パスワード:linqtoentities
更新しました。
○ 解説
34行目では、変更するデータを取得しています。BooksEntitiesオブジェクトにあるUsersコレクションのSingleメソッドは特定の要素を返します。複数ある場合は例外がスローされます。今回は引数にラムダ式を指定しています。ラムダ式は、取得するデータの条件を簡潔に書くことができます。今回はID列のデータが入力したIDと等しいという条件を与えています。
37行目で取得したデータのPasswordプロパティを変更しています。その後、40行目のBooksEntitiesオブジェクトのSaveChangesメソッドにより、データベースに変更が反映されます。