EF i ConfigurationManager - inny Connection String

0

Witam,

mam problem z aplikacją. Utworzyłem w solucji dwa projekty. Jeden WPF, drugi biblioteka klas. W bibliotece klas dodałem EF oraz bazę w code first. Dodałem również w tym projekcie metodę statyczną, która powinna pobierać mi connection stringa z app.config. Jednak pobiera, ale coś całkiem innego. Metoda wywoływana jest z projektu WPF. Poniżej zawartość metody.

ConnectionStringSettingsCollection settings =
           ConfigurationManager.ConnectionStrings;

            if (settings != null)
            {
                foreach (ConnectionStringSettings cs in settings)
                {
                    Console.WriteLine(cs.Name);
                    Console.WriteLine(cs.ProviderName);
                    Console.WriteLine(cs.ConnectionString);
                }
            }

Oto co wyrzuca na konsolę:

LocalSqlServer
System.Data.SqlClient
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true

A oto zwartość app.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="SMDB" connectionString="data source=192.168.0.110\SQLSERVER;initial catalog=service_manager_v1.0;persist security info=True;user id=sa;password=HASŁO;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Dodam, że baza jest na innym komputerze, niż uruchamiam program.

0

Wygląda na to że connection string powinnien być w app.configu aplikacji uruchomieniowej nie dllki.

0

Kurde, trochę mi się już w głowie namieszało... Całą klasę z tą metodą statyczną mam w projekcie dll z EF. W projekcie WPF mam tylko wywołanie tej metody, która zwróci mi connection stringa z tamtej dllki do okna w WPF. Ale w związku z tym, że metoda jest zadeklarowana w obrębie dllki z EF to powinna pociągnąć dane z configa dllki, chyba? Poza tym, w configu projektu WPF nie ma żadnego connection stringa więc tym bardziej z tego configa nie czyta.

0

Ok, wczoraj zrobiłem podobnie. Mam aplikację WPF a do tego class library z EF i podczas update-database po migracji wyrzuca wyjątek, że nie może się połączyć z ./SQLEXPRESS, pomimo, że nigdzie nie mam takiego connection stringa. Utworzyłem specjalnie app.config dla projektu WPF i tam dałem takiego samego connection stringa czyli :

<connectionStrings>
    <add name="SMDB" connectionString="data source=192.168.0.110\SQLSERVER;initial catalog=service_manager_v1.0;persist security info=True;user id=sa;password=HASŁO;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>

I podczas migracji wyrzuca wyjątek, że nie może się połączyć z serwerem SQL.
Zmieniłem konstruktor dbcontextu i podałem to jako stringa i wtedy zadziałało. Czym może to być spowodowane?

1 użytkowników online, w tym zalogowanych: 0, gości: 1