Entity Framework et OnModelCreating()

Je suis en utilisant le code de la première approche, et je suis en train de changer le comportement de la façon dont EF crée mes tables. J'ai deux classes:

Note: j'ai ma base de données supprimé et recréé à chaque fois. Cela ne risque pas d'arriver dans le monde réel, mais pour le test je suis d'essayer d'intercepter la création et de la force EF pour créer la base de la façon dont je l'imagine.

public class Person
{
  public int PersonId { get; private set; }
  public string Forename { get; set; }
}
public class Officer : Person
{
  public int OfficerId { get; private set; }
  public bool IsManager { get; set; }
}

Dans mon OnModelCreating() événement, j'ai suivantes:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();


        modelBuilder.Entity<Person>().HasKey(x => x.PersonId);
        modelBuilder.Entity<Person>().ToTable("Person");
        modelBuilder.Entity<Officer>().HasKey<int>(x => x.OfficerId);
        modelBuilder.Entity<Officer>().ToTable("Officer");
    }

Problème est lorsque ma base de données est créée, elle crée les tables:

Table: Personne
PersonId INT PK
Prénom de type nvarchar(50)

Table: Agent De
PersonId INT PK, FK
IsManager PEU
OfficerId INT

Pour moi, c'est anormal qu'elle n'est pas traditionnellement par les conventions de nommage, c'est à dire TableNameId.

Toute aide est très appréciée.
Merci d'avance, Onam.

Double Possible de stackoverflow.com/questions/7278992/... - la réponse plus il dit qu'il n'est actuellement pas possible de renommer le PK pour le sous-type dans un tableau par type de scénario
Merci, j'ai eu un coup d'oeil à ce thread vous l'avez mentionné, s'est avéré très utile.

OriginalL'auteur Dr Schizo | 2013-05-20