61 votes

Comment spécifier le nom de la base de données dans Code First?

Comment puis-je dire à EF comment nommer la base de données et où la mettre?

S'il n'y a pas de chaîne de connexion dans Web.Config, le système essaie de le placer dans le serveur SQLEXPRESS local, mais je souhaite le placer sur un serveur SQL connu et le nommer comme je le souhaite. Aucune suggestion?

64voto

amit_g Points 15415

Créez une chaîne de connexion dans app.config / web.config avec le même nom que le contexte et l'EF utilisera cette base de données. Vérifiez ici (faites défiler jusqu'au point 7).

25voto

ferventcoder Points 2703

Comment utiliser un nom de chaîne de connexion différent avec EF

EF utilisera le nom de la base de données dans la chaîne de connexion. Lorsque vous souhaitez découpler le nom de votre chaîne de connexion de EF, vous devez fournir votre chaîne de connexion au constructeur. Exemple:

 public class DatabaseContext : DbContext
{
    public DatabaseContext() 
      : base(ApplicationParameters.ConnectionStringName)
    {
    }

    public DatabaseContext(string connectionStringName)
      : base(connectionStringName)
    {
    }

}
 

19voto

Amin Ghaderi Points 109

en classe :

 public class Context : DbContext
{
    //SET CONNECTION STRING NAME FOR DataBase Name :
    public Context() : base("YourConnectionName") { }

    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }
}
 

dans web.config:

 <connectionStrings>  
    <add name="YourConnectionName" connectionString="Data Source=A-PC\SQLEXPRESS;
    Initial Catalog=MyDataBase; Integrated Security=True" 
    providerName="System.Data.SqlClient" />
</connectionStrings>  
 

Merci ferventcoder.
Réf => http://brandonclapp.com/connection-strings-with-entity-framework-5-code-first/

8voto

carlsb3rg Points 323

Sinon, vous pouvez définir le nom dans votre constructeur DbContext.

1voto

Daniel Little Points 4451

Si vous pointez votre chaîne de connexion vers une base de données existante, le "code d'abord" EF ne tentera pas d'en créer un automatiquement.

EF "code first" utilise une convention selon laquelle les classes de contexte recherchent par défaut une chaîne de connexion qui porte le même nom que la classe de contexte.

Utiliser d'abord le code ef avec une base de données existante

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