web-dev-qa-db-fra.com

Définition du nom de schéma pour DbContext

Je sais comment définir le schéma d'une table dans mon contexte, mais existe-t-il un moyen de définir le schéma par défaut pour toutes les tables d'un contexte? c'est à dire.

[Schema = "Ordering"] 
public class MyContext:DbContext
{
    public MyContext()
        : base("name=ConnectionString")
    {
    }

    public DbSet<Student> Students { get; set; }
}
16
John S

Vous pouvez configurer le schéma par défaut dans la méthode OnModelCreating de votre classe DbContext héritée personnalisée comme -

public class MyContext: DbContext 
        {
            public MyContext(): base("MyContext") 
            {
            }

            public DbSet<Student> Students { get; set; }

            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                //Configure default schema
                modelBuilder.HasDefaultSchema("Ordering");
            }
        }

À partir d'EF6, vous pouvez utiliser la méthode HasDefaultSchema sur DbModelBuilder pour spécifier le schéma de base de données à utiliser pour toutes les tables, procédures stockées, etc. Ce paramètre par défaut sera remplacé pour tous les objets pour lesquels vous configurez explicitement un schéma différent.

23
DfrDkn