LoginSignup
0
0

More than 5 years have passed since last update.

Entity Frameworkで配列型のカラムに追加、更新する(EF, C#, PostgreSQL)

Posted at

PostgreSQLで型を配列にしたとき、Entity Frameworkで追加、更新するのにハマったのでメモ。

成功

配列では宣言しない。
文字列型も数値型もstringで宣言する。

[Column("data")]
public string Data { get; set; } // text[]

[Column("data2")]
public string Data2 { get; set; } // integer[]
var t2 = dbContext.Test2s.Single(x => x.Id == 0);
t2.Data = "{\"a\",\"b\"}"; // text[]
t2.Data2 = "{0,1,2}";      // integer[]
dbContext.SaveChanges();

失敗

Entityクラス側でも配列で宣言して、配列をgetsetするものだと思っていたが、それだとDBが更新されなかった。
エラーは出ない。
dbContext.SaveChanges();の戻り値は0なので成功している・・・?

[Column("data")]
public string[] _Data;
public string[] Data {
    get {
        return _Data;
    }
    set {
        _Data = value;
    }
}

t2.Data = new string[] { "a", "b", "c" };
dbContext.SaveChanges(); // エラーは出ないが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