Table per Hierarchy (TPH) マッピングは、Entity Framework Code First の既定です。これは、同じテーブルを共有する型階層内のすべてのクラスで FirstName が必要でない場合、列を非 null にすることはできないことを意味します。
FirstName 列を null 非許容にする場合は、別のマッピング戦略を選択できます。代わりに Table per Type (TPT) を使用すると、IdentityUser 用に 1 つのテーブル (デフォルトでは AspNetUsers) と ApplicationUser 用に別のテーブルが作成されます。FirstName は ApplicationUser テーブルに固有であるため、null 非許容にすることができます。
TPT を使用するには、次のように OnModelCreating メソッドをオーバーライドできます。
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ApplicationUser>().ToTable("ApplicationUser");
}