2014-07-18 8 views
5

W moich projektach MVC z interfejsem sieciowym, jestem przyzwyczajony do ustawienia ciągu połączenia w pliku Web.Config.Jak ustawić domyślny ciąg połączenia w aplikacji konsoli?

Jednak teraz robię standardową aplikację na platformę - również z hakiem na bazę danych, ale jak ustawić globalnie łańcuch połączenia dla aplikacji?

Obecnie jestem ustawienie

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

ale muszę ustawić tę właściwość ConnectionString za każdym razem, we wszystkich wywołań funkcji. Czy istnieje sposób ustawienia globalnego ciągu połączenia, gdy nie mam pliku web.config?

Odpowiedz

5

Więc myślę, że twoje stwierdzenie jest takie, że struktura Entity (zakładam, że to, czego używasz) wygląda na: defaultConnection łańcuch nekr.

Możesz spróbować umieścić go w pliku app.config zgodnie z sugestią innych osób, ale nie jestem pewien, czy zostanie to automatycznie pobrane przez EF.

Co można zrobić, jeśli to nie zadziała, to aby utworzyć nową klasę, która dziedziczy DbContext -

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

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

App.config jest odpowiednikiem pliku Web.config dla programów konsoli lub .exe.

  • Dodaj odwołanie do System.Configuration na każdym projekcie, który chcesz użyć ConnectionStrings z app.config
  • Dodaj AppConfig do punktu wejścia projektu. To jest projekt, który jest wykonywany. (Np .exe konsola)
  • Dodaj ciąg połączenia w sekcji <connectionStrings></connectionStrings> z app.config

Teraz umieść ciąg połączenia w 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

Rozwiązanie jest bardzo proste i łatwe. Kliknij prawym przyciskiem myszy i ustaw projekt jako projekt początkowy. Entity Framework domyślnie wybiera projekt rozruchu i wykorzystuje ciąg połączenia wewnątrz z app.config lub web.config

Proszę odnieść się do tego:

enter image description here

Powiązane problemy