J'essaie de trouver un moyen de changer le nom de la base de données dans mon web.config
et mon contexte. Aucune autre information dans ma chaîne de connexion ne change mais le nom de la base de données.Comment changer le nom de la base de données dans Entity Framework
public APIContext(string dbname = "MyFirstDB") : base("OriginalContext")
{
this.Database.Connection.ConnectionString = this.Database.Connection.ConnectionString.Replace("MyFirstDB", dbname);
}
La seule façon que je peux trouver pour y parvenir est de remplacer le nom, mais je peux voir quelques problèmes à l'avenir, par exemple si je dois revenir en arrière ou besoin de pointer vers une autre base de données. En utilisant mysql.
Toute aide sera appréciée.
** EDIT **
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class APIContext : DbContext
{
public APIContext() : base("MyContext")
{
}
public void setDatabaseName(string name)
{
var currentdatabase = this.Database.Connection.Database;
this.Database.Connection.ConnectionString = this.Database.Connection.ConnectionString.Replace(currentdatabase, name);
}
Est-ce que ce travail si je devais appeler la méthode « setDatabaseName (nom de la chaîne) » avant d'appeler ma classe de contexte?
Je suis juste confus sur où je devrais remplacer le nom de base de données et comment le faire.
* cela fonctionnerait-il * pourquoi ne pas essayer et voir si cela fonctionne? Je veux dire qu'il est plus rapide de l'essayer que de demander ici et d'attendre une réponse. Pourquoi ne peux-tu pas juste changer le nom de la chaîne de connexion dans le fichier de configuration: 'Database = whateverDb'? – CodingYoshi
J'ai essayé ce Yoshi. Où je suis confus est comment le configurer et où j'ai besoin de changer le nom de la base de données dans la chaîne de connexion. Après avoir frappé ma base de données initiale, j'obtiens un nom de base de données, et je voudrais passer à cette base de données. Je ne sais pas comment le faire. – brachen33
Voir [cette réponse] (https://stackoverflow.com/a/20294903/4228458) – CodingYoshi