2011-05-11 4 views
5

Dans LINQ to SQL, il existe une convention très simple pour indiquer au mappeur le schéma de base de données à utiliser: [Table(Name = "SchemaName.TableName")].Entity Framework Code Premier schéma de configuration par entité

Existe-t-il quelque chose de similaire dans EF CF 4.1? Je préfère ne pas utiliser d'annotations dans les classes d'entités pour les garder aussi pures que possible. Pour faire avancer mon projet, je vais faire le sacrifice.

Cette question est proche, mais pas exactement ce dont j'ai besoin. Il peut même être obsolète car il semble qu'il se réfère à des classes qui ont été renommées ou ont eu des changements de rupture depuis la récente version EF 4.1 - Entity Framework 4: Code First - Creating db in another schema? MapSingleType?

EDIT: Je devrais également mentionner que mon application a trois schémas à l'heure actuelle, donc je ne peux pas nécessairement utiliser une solution qui change seulement le schéma par défaut de "dbo" à "otherschema".

Répondre

8

La réponse liée est ancienne et ne fonctionne pas car les conventions personnalisées ont été supprimées de la version finale. Si vous voulez changer le nom du schéma que vous pouvez utiliser api couramment:

public class Context : DbContext 
{ 
    public DbSet<YourType> YourTypeSet { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName"); 
    } 
} 
+0

Je veux définir le nom de schéma de table automatiquement et régler manuellement! mais comment? il devrait y avoir une méthode comme ToSchema() ... mais ce n'est pas –

Questions connexes