Entity Framework Coreを利用してテーブルからレコードを削除するコードを紹介します。
概要
Entity Framework Core でテーブルからレコードを削除する場合は、DbSetオブジェクトのRemove() メソッドを呼び出します。
プログラム例
Windows Formアプリケーションを作成します。
UI
下図のフォームを作成します。今回のデモでは、[Delete Record]ボタンのみを利用します。
コード
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
namespace EntityFrameworkCoreOperateTableSqlServer
{
public class MyDbContext : DbContext
{
public DbSet<MyTable1Rec> MyTable1 { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlServer("Data Source=(DBホスト名またはIPアドレス);Initial Catalog=iPentecSandBox3;User ID=(ユーザーID);Password=(パスワード);Encrypt=False");
}
}
}
using System;
namespace EntityFrameworkCoreOperateTableSqlServer
{
public class MyTable1Rec
{
public int id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public string Code { get; set; }
public int Price { get; set; }
}
}
using Microsoft.EntityFrameworkCore;
namespace EntityFrameworkCoreOperateTableSqlServer
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
MyDbContext cx = new MyDbContext();
MyTable1Rec mtr = cx.MyTable1.Single<MyTable1Rec>(item => item.id == 2);
cx.MyTable1.Remove(mtr);
cx.SaveChanges();
textBox1.Text += "レコードを削除しました。\r\n";
}
}
}
解説
データベースコンテキストやテーブルのモデルクラスについては
こちらの記事を参照してください。
[Delete Record]のbutton4をクリックすると以下のコードを実行します。
データベースコンテキストオブジェクトを取得します。
MyDbContext cx = new MyDbContext();
削除するレコードを取得します。今回は id=2 のレコードを削除のため取得します
MyTable1Rec mtr = cx.MyTable1.Single<MyTable1Rec>(item => item.id == 2);
削除するテーブルのDbSetのRemoveメソッドを呼び出します。第一引数に削除するレコードのオブジェクトを与えます。
Removeメソッドの呼び出し後に、データベースコンテキストの SaveChange() メソッドを呼び出し、削除をデータベースに反映します。
cx.MyTable1.Remove(mtr);
cx.SaveChanges();
テキストボックスにレコードを削除した旨のメッセージを表示します。
textBox1.Text += "レコードを削除しました。\r\n";
実行結果
作成したテーブルのレコードを確認します。3レコードあることが確認できます。
上記のプロジェクトを実行します。下図のウィンドウが表示されます。
[Delete Record]ボタンをクリックします。テキストボックスにレコードを削除した旨のメッセージが表示されます。
テーブルのレコードを再度表示します。レコードが2つになっていることが確認できます。id=2 の"らくだキャラメル"のレコードが削除できていることが確認できました。
Entity Framework Coreを利用してレコードの削除ができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2023-05-08
作成日: 2022-11-27