現在、.NET RC1からRTMへのアップグレード中です。アップグレードプロセスの一環として、Entity Frameworkを7.0.0-rc1から1.0.0にアップグレードする必要があります。 process is described hereとかなり簡単です。このプロセスの一環として、table naming conventionsが変更されました。Entity FrameworkのDisplayNameがテーブル名ではありません。
私の文脈でOnModelCreating
に対応するコードを追加しました。
foreach (var entity in builder.Model.GetEntityTypes())
{
entity.Relational().TableName = entity.DisplayName();
//System.Diagnostics.Debug.WriteLine($"Model = {entity.Model}");
//System.Diagnostics.Debug.WriteLine($"Name = {entity.Name}");
//System.Diagnostics.Debug.WriteLine($"Model = {entity.DisplayName()}");
}
ご覧のとおり、マッピングが正しく行われていないため、一部の情報が印刷されています。これらの出力では、DisplayName
がデフォルトのままです。したがって、Gender
(私のモデル)は(私のテーブル)にマップされません。それが何か変更された場合は、テーブル名をモデルにマッピングするためにデータアノテーションとFluent APIも使用しています(デフォルトをそのままにすることはありません)。私はこれがどのようにそれに影響するのか分かりません。同様に:私はここで間違って
[Table("GenderLookup")]
public class Gender
{
// ...
}
と
builder.Entity<ApplicationUser>().ToTable("PreExistingUser");
は何をしているのかもしれませんか?