Entity Framework Code First-Modification du nom d'une Table

Je veux d'abord changer le nom d'une de mes tables générées en utilisant le code Entity Framework.

J'ai déjà créé la base de données, mais maintenant je veux changer le nom. J'ai mis à jour toutes les références à la table "Metadatas" à "Metadata" dans mon projet. Mais la table qui est générée dans la base de données est toujours "Metadatas". J'ai abandonné et recréé la base de données, mais cela ne semble pas fonctionner non plus. L'utilisation D'un TableAttribute non plus. Ce que je suis-je censé faire?

Merci.

[Table("Metadata")]
public class Metadata 
{
    [Required, Key]
    public int MetadataId { get; set; }

    [Required, ScaffoldColumn(false)]
    public int DocumentId { get; set; }

    [Required, StringLength(250), DataType(DataType.Text)]
    public string Title { get; set; }

...

22
demandé sur Tums 2014-02-09 11:45:03

1 réponses

, Vous avez deux options ici-

Annotations De Données:

//Changing database table name to Metadata
[Table("Metadata")]
public class Metadata 
{
  [Required, Key]
  public int MetadataId { get; set; }

  [Required, ScaffoldColumn(false)]
  public int DocumentId { get; set; }

  [Required, StringLength(250), DataType(DataType.Text)]
  public string Title { get; set; 
}

Ou nous avons une Api fluide:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  //Changing Database table name to Metadata
  modelBuilder.Entity<Metadata>()
      .ToTable("Metadata");
}

L'utilisation de L'Api Fluent est l'option préférée si vous voulez vous assurer que votre modèle de domaine reste épuré.

Juste en ajoutant à cela, si vous voulez uniquement supprimer la pluralisation de vos noms de table, vous pouvez remplacer la capacité EFs de le faire avec la ligne de code suivante:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
39
répondu Stu1986C 2014-12-29 07:31:46