ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

PostgreSQLでTableAttributeのテーブル名がエラーになる

EntityモデルのTableAttributeにテーブル名を設定してもSqlがエラーになる。

まだ解決出来てないが備忘録として記載。

以下の様に実際のテーブル名をしてした。

[Table("Table1")]
public MyModel
{
}

DbContextではPropertyに以下の様に設定

public DbSet<MyModel> mymodels { get; set; }

実際取得してみるとエラーになる。

42P01: relation "dbo.Table1" does not exist

どうやら、MS SQLServer仕様の"dbo."が付くのがダメみたい。
これが出来ないとColumnAttrributeのカラム名しても使用できなくなる。

追記、DbContextのOnModelCreatingメソッドをオーバーライドでHasDefaultSchemaを指定して解決

public class MyContext : DbContext
{
  public MyContext() : base("MyDbSource")
  { }

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    modelBuilder.HasDefaultSchema("public");
  }
}

参考:
mamelog.hatenablog.jp