Je développe une application MVC 5 qui utilise d'abord 2 bases de données de code et 1 base de données. Maintenant, je veux déployer et le rendre disponible pour plusieurs clients à travailler. Pour cela, je veux générer ma base de données First Database pour chaque nouveau client. Ma base de données première base de données a 103 tables avec PK, FK et les déclencheurs ont également été construits en eux.Création de plusieurs bases de données en utilisant EF dans MVC et en passant le nom de base de données à InitialCatalogue en tant que variable dans web.config
Mon DbContext est la suivante:
public partial class MyEntities : DbContext
{
public MyEntities() : base("name=MyEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
** Here are my DbSet's **
}
Maintenant, la principale préoccupation est le mien que je veux aussi utiliser MyEntities pour accéder aux bases de données pour chaque client. Parce que tous mes contrôleurs validations accèdent à la base de données avec ce nom d'entité comme suit:
public MyEntities db = new MyEntities();
Maintenant, comment pourrais-je être en mesure de créer une nouvelle base de données pour chaque client et le nom du contexte devrait rester même pour que je ne suis pas dois changer mon code dans les contrôleurs? De plus, je dois aussi passer le InitialCatalogue comme variable à web.config pour chaque base de données.
Mais comment ce constructeur va créer une nouvelle base de données. Je dois en créer un nouveau avant. –
EF va créer. et graine la base de données pour vous, avec les paramètres corrects. –
Alors, comment passer le paramètre nameOrConnectionString ?? –