2014-07-18 9 views
5

Nei miei progetti MVC con un'interfaccia Web, sono abituato a impostare la stringa di connessione nel file Web.Config.Come si imposta una stringa di connessione predefinita in un'applicazione della console?

Tuttavia, ora sto creando un'applicazione console di bog standard, anche con un hook di database, ma come faccio a impostare la stringa di connessione globalmente per l'applicazione?

Al momento, io pongo

var dbIndex = new DBContext(); 
dbIndex.Database.Connection.ConnectionString = 
    "Data Source=USER-PC;Initial Catalog=TextProject.DBContext;" + 
    "Integrated Security=True;MultipleActiveResultSets=True"; 

ma devo impostare questa proprietà ConnectionString ogni volta, in tutte le chiamate di funzione. C'è un modo per impostare una stringa di connessione globale quando non ho un web.config?

risposta

5

Quindi penso che cosa stai dicendo che Entity Framework (presumo che sia quello che stai usando) cerca defaultConnection con stringa di riferimento.

Puoi provare a inserirlo nel file app.config come suggerito da altri, ma non sono sicuro che questo verrà raccolto automaticamente da EF.

cosa si potrebbe fare, se non funziona, è quello di creare nuova classe che eredita DbContext -

public class MyDbContext : DbContext 
{ 
    public MyDbContext() : base() 
    { 
     var cs = ConfigurationManager.ConnectionStrings["defaultConnection"] 
            .ConnectionString; 

     this.Database.Connection.ConnectionString = cs;     
    } 
} 
3

App.config è l'equivalente di un Web.config per programmi console o .exe.

  • Aggiungere un riferimento alla System.Configuration su qualsiasi progetto che si desidera utilizzare il ConnectionStrings del app.config
  • Aggiungi un AppConfig al progetto punto di ingresso. Questo è il progetto che viene eseguito. (Ad esempio .exe console)
  • aggiungere la stringa di connessione nella sezione <connectionStrings></connectionStrings> del app.config

Ora posizionare la stringa di connessione nel vostro app.config

string connStr =ConfigurationManager.ConnectionStrings["ConnName"] 
    .ConnectionString; 

App.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="ConnName" connectionString="Data Source=USER-PC;Initial Catalog=TextProject.DBContext;Integrated Security=True;MultipleActiveResultSets=True" /> 
</connectionStrings> 
</configuration> 
-1

La soluzione è molto semplice e facile. Basta fare clic destro e impostare il progetto come progetto di avvio. Entity Framework per default prende il progetto di start-up e utilizza la stringa di connessione all'interno di App.config o web.config

prega di fare riferimento a questo:

enter image description here

Problemi correlati