13

J'utilise des standards pour les noms de table singuliers. EF4 Code First a par défaut pour pluriel les noms de tables. J'ai mis le code pour remplacer cette convention, mais cela ne semble pas fonctionner.Code EF4 Première création de noms de tables au singulier

section en utilisant:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel.DataAnnotations; 
using System.Data.Entity; 
using System.Data.Entity.Database; 
using System.Data.Entity.ModelConfiguration; 
using System.Data.Entity.ModelConfiguration.Conventions.Edm; 

contexte de données:

public class SiteDataContext : DbContext 
    { 
     public DbSet<Blog> Blogs { get; set; } 
     public DbSet<BlogFeedback> BlogFeedbacks { get; set; } 
     public DbSet<BlogCategory> BlogCategories { get; set; } 

     // Twist our database 
     protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>(); 
      base.OnModelCreating(modelBuilder); 
     } 
    } 

Tables créées:

  • Blogs
  • BlogFeedbacks
  • BlogCategories

Lorsque parce que la primauté de la convention (et ce que je dois) devraient être:

  • Blog
  • BlogFeedback
  • blogcategory

Toute personne a une idée pourquoi la ligne de commande prioritaire est ne fonctionne pas? Merci beaucoup.

Répondre

27

En utilisant la mauvaise convention. Vous devez faire ce qui suit.

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{  
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
} 
+0

C'était un bon! Tu as raison, j'ai changé et maintenant je travaille! Merci beaucoup. – Nestor

+2

Notez que dans EF5 le type de paramètre est DbModelBuilder – justabuzz

+0

Dude, Thanks a ton. Juste sur l'ongle. – VivekDev

Questions connexes