概要
前回では、リクエストボディのXMLを変換するプログラムを作成しました
今回は、 XML → オブジェクトに変換したものを「EntityFramework」の技術を使用してCRUDしていきます。
Nuget設定
- ソリューションエクスプローラー → プロジェクト[右クリック]
- Nugetパッケージの管理
- 参照 → ”Postgres”で検索 → ”Npgsql.EntityFrameworkCore.PostgreSQL”をインストール
※ .net coreのバージョンとそろえること
テーブルと構成をそろえたEntiryクラス作成
設定の例
{
[Table("m_memotype")]
public class MemoType
{
[Key]
[Column("mmsb")]
public int Mmsb { get; set; }
[Required]
[Column("mmsn")]
public string Mmsn { get; set; }
}
}
DbContextを継承したDB操作用クラスの作成
public class HelloContext : DbContext
{
public DbSet<MemoType> MemoTypes { get; set; }
public HelloContext(DbContextOptions options)
: base(options)
{
}
public HelloContext()
{
}
protected override void OnModelCreating(ModelBuilder mb)
{
mb.Entity<MemoType>().Property(x => x.Mmsb).ForNpgsqlUseSequenceHiLo();
}
}
appsetting.jsonの設定
// ConnectionStringsに以下追記
"ConnectionStrings": {
"HelloContext": "Host=localhost;Port=5432;User Id=postgres;Password=;Database={database name}"
}
StartUp.csの設定
using Microsoft.EntityFrameworkCore;の記述忘れに注意
// ConfigureServices()に以下追記
// Dependency Injection(依存性注入)
services.AddDbContext<HelloContext>(option =>
{
option.UseNpgsql(Configuration.GetConnectionString("HelloContext"));
});
Controllerの設定
以下を追記
HelloContext _context;
public CatController(HelloContext context)
{
_context = context;
}