56 votes

Comment puis-je au singulier mes tables en EF Premier Code?

Je préfère utiliser le singulier des noms pour nommer mes tables de base de données. En EF code tout d'abord, les tables générées sont toujours au pluriel. Mon DbSets sont la marque du pluriel qui, je crois, où EF est de générer les noms, mais je ne veux pas au singulier de ces noms que je crois qu'il est plus pratique de les avoir pluriel dans le code. J'ai aussi essayé en remplaçant le réglage, mais en vain.

Des idées? Voici mon code et merci.

MyObjectContext.cs

public class MyObjectContext : DbContext, IDbContext
{
     public MyObjectContext(string connString) : base(connString)
     {
     }
     public DbSet<Product> Products {get;set;}
     public DbSet<Category> Categories {get;set;}
     //etc.

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

89voto

Morteza Manavi Points 20486

Vous avez enlevé le mauvais convention (PluralizingEntitySetNameConvention) à cette fin. Il suffit de remplacer votre OnModelCreating méthode avec le ci-dessous et vous serez bon d'aller.

using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db;
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

1voto

Mythlandia Points 21

L'emplacement de la définition de PluralizingTableNameConvention a déménagé:

using System.Data.Entity.ModelConfiguration.Conventions;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X