okinawa

勉強メモ

コードファースト・DBファーストで主キーの名前を変える方法

コードファーストだと主キー名が「Id」か「classNameId」しかつけられない。

Companyクラスなら「Id」か「CompanyId」だけ。  

参考

キー-EF Core | Microsoft Docs

https://cloud6.net/so/asp.net-core/2495859

コードファーストの手順

  ・モデルクラスで[Key]付けるだけ。

[Key]
public int hogehoge {get; set;}

VisualStudio内のDBで主キー名変更の場合

主キー名を変える場合は一度DBごと消さないとダメっぽい。

手順は

上記の要領でモデルクラス変更→

drop-database→Add-Migration→Update-Database

DBファースト

・コンテキストクラスを変更する。

modelBuilder.Entity<Account>(entity =>
            {
                entity.ToTable("account");

                // モデルクラスの主キー指定
                entity.HasKey(e => e.AccountId);

                // DBの主キー名はaccount_id
                entity.Property(e => e.AccountId).HasColumnName("account_id");
             }