この節では、LINQを使ってデータベースのデータを削除する方法を見てみましょう。SQL文でDELETE文に該当します。
データを削除するにはLINQの命令文ではなく、Entity Data Modelで追加したテーブルに対応するオブジェクトのデータを削除し、その後、DbContextクラスのSaveChangesメソッドでデータベースに反映させます。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | EntityDeleteTest |
○ 作成の準備
「EntityUpdateTest」プロジェクトを修正して作成しましょう。EntityUpdateTestフォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。
○ プログラム
Mainメソッドを次のように記述してください。
Program.cs
○ 実行結果
次の一覧から削除したいデータのIDを選んでください。
ID:1 氏名:佐藤
ID:2 氏名:鈴木
ID:3 氏名:高橋
ID:4 氏名:田中
ID:5 氏名:伊藤
ID:6 氏名:山本
ID:7 氏名:中村
ID:7
削除しました。
○ 解説
32行目では、削除するデータを取得しています。ID列のデータが入力したIDと等しいという条件を与えて取り出しています。33行目では14行目で生成したBooksEntitiesオブジェクトを通して、UsersコレクションのRemoveメソッドを呼び出しています。引数に32行目で取得したUsersオブジェクトを指定します。すると、BooksEntitiesオブジェクトのUsersコレクションからデータが削除されます。
36行目ではBooksEntitiesオブジェクトのSaveChangesメソッドを呼び出しています。これによりデータベースのデータが実際に削除されます。