LoginSignup
0
0

More than 3 years have passed since last update.

[2] : C#(ASP.NET core)でWeb APIを作って(以下略)[EntityFrameworkCore#SELECT編]

Last updated at Posted at 2020-12-23

概要

前回では、リクエストボディのXMLを変換するプログラムを作成しました

今回は、 XML → オブジェクトに変換したものを「EntityFramework」の技術を使用してCRUDしていきます。

Nuget設定

  1. ソリューションエクスプローラー → プロジェクト[右クリック]
  2. Nugetパッケージの管理
  3. 参照 → ”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;
        }

動作確認

selectを確認
3.PNG
2.PNG


参考資料

DbContextを使用したデータ作成#テスト"データで DB を初期化する"参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0