Jak edytować parametry połączenia Entity Framework?

115

Niedawno musiałem edytować plik app.config, aby zmienić parametry połączenia dla modelu danych Entity Framework ( .edmxplik). Ale chciałbym wiedzieć: czy istnieje sposób edytowania parametrów połączenia EF przy użyciu projektanta?

Oryginalne parametry połączenia są generowane automatycznie przez kreatora Entity Data Model. Ciągu połączenia nie można wtedy zmienić - pozostaje on wyłączony w oknie właściwości projektanta .edmx. Lubię unikać ręcznej edycji XML, jeśli mogę (w app.config), więc zastanawiałem się, czy jest sposób, aby wrócić do oryginalnego ekranu kreatora, aby wprowadzić zmiany parametrów połączenia i pozwolić narzędziu edytować plik app.config dla mnie.

DeveloperDan
źródło

Odpowiedzi:

191

Jeśli usuniesz parametry połączenia z app.configpliku, ponowne uruchomienie kreatora modelu danych jednostki poprowadzi Cię przez tworzenie nowego połączenia.

Fabian Nicollier
źródło
17
Doskonały. To jest dokładnie odpowiedź, której szukałem. Dla pewności wykomentowałem istniejący ciąg (zamiast go usunąć), zapisałem zmiany w pliku app.config, kliknąłem prawym przyciskiem myszy projektanta i wybrałem opcję Aktualizuj model z bazy danych. Następnie kreator pozwolił mi dołączyć poufne informacje (UID i pwd) do parametrów połączenia. Dzięki!
DeweloperDan,
5
Jeśli najpierw wykonujesz model, kliknij prawym przyciskiem myszy projektanta i zamiast tego kliknij opcję „Generuj bazę danych z modelu”
Carl Onager
2
U mnie to również zadziałało, z wyjątkiem tego, że musiałem zaktualizować plik App.config, a następnie ponownie uruchomić VS.NET 2012. Nie wykryto zmiany pliku App.config.
Garry English,
2
Musiałem jawnie wywołać zapisywanie w pliku app.config, aby projektant rozpoznał, że parametry połączenia zostały usunięte.
Rossco
1
Alternatywą dla ponownego uruchomienia VS jest 1. wykomentowanie parametrów połączenia w app.config 2. odbudowanie projektu zawierającego .edmx 3. kliknięcie prawym przyciskiem myszy powierzchni projektowej .edmx i aktualizacja modelu z bazy danych ... co powinno spowodować w kreatorze parametrów połączenia.
RIanGillis
18

Nie, nie możesz edytować parametrów połączenia w projektancie. Ciąg połączenia nie jest częścią pliku EDMX, jest to po prostu odniesienie do wartości z pliku konfiguracyjnego i prawdopodobnie dlatego jest tylko do odczytu w oknie właściwości.

Modyfikowanie pliku konfiguracyjnego jest typowym zadaniem, ponieważ czasami chcesz wprowadzić zmiany bez ponownego kompilowania aplikacji. To jest powód, dla którego istnieją pliki konfiguracyjne.

Ladislav Mrnka
źródło
+1 za przypomnienie, że: jeśli umieścili go w pliku konfiguracyjnym, oznacza to, że chcą, abyś mógł to zmienić.
Martwiło
Powinieneś przejść i zmienić parametry połączenia w konfiguracji aplikacji projektu, do którego należy EDMX. Nie konfiguracja aplikacji najwyższego poziomu (która jest używana, gdy jest uruchomiona). o_0
akava
9

Parametry połączenia zwykle definiuje się w pliku Web.config. Po wygenerowaniu edmx parametry połączenia zostaną zapisane w pliku App.Config. Jeśli chcesz zmienić parametry połączenia, przejdź do pliku app.config i usuń wszystkie parametry połączenia. Teraz przejdź do edmx, kliknij prawym przyciskiem myszy powierzchnię projektanta, wybierz Aktualizuj model z bazy danych , wybierz parametry połączenia z listy rozwijanej, kliknij dalej , Dodaj lub Odśwież (wybierz, co chcesz) i zakończ.

W oknie wyjściowym pokaże się coś takiego,

Wygenerowany plik modelu: UpostDataModel.edmx. Ładowanie metadanych z bazy danych trwało 00:00: 00.4258157. Wygenerowanie modelu zajęło 00: 00: 01.5623765. Dodano parametry połączenia do pliku App.Config.

DanKodi
źródło
Mam podobny problem, ale kiedy komentuję parametry połączenia, aktualizuję model, wybieram nowe parametry połączenia, moja klasa context.cs w modelu zostaje opróżniona. Nie wiesz, dlaczego to robi, chyba że po prostu nie udało się wygenerować klasy kontekstu?
Bitshift
1
Nie powinien tego robić. Być może narzędzie do tworzenia szablonów T4 jest uszkodzone.
DanKodi,
Zgadzam się, to "nie powinno". Jednak straciłem rachubę, ile razy robiłem więcej niż kilka nietrywialnych zmian w podstawowym schemacie, że ostatecznie musiałem po prostu zdmuchnąć model i stworzyć nowy. Może z EF7 i usunięciem pliku edmx może pomóc. Tak czy inaczej, to właśnie zrobiłem tym razem, po prostu podświetliłem wszystko w modelu,
kliknąłem
2

Otwórz plik .edmx, dowolny edytor tekstu, zmień Schema = " wymagany schemat ", a także otwórz plik app.config / web.config , zmień identyfikator użytkownika i hasło z ciągu połączenia . gotowe.

bijon75
źródło
Tak, to się udało.
ggderas
1

Wykonaj kolejne kroki:

  1. Otwórz plik app.config i skomentuj parametry połączenia (zapisz plik)
  2. Otwórz edmx (przejdź do właściwości, ciąg połączenia powinien być pusty), ponownie zamknij plik edmx
  3. Otwórz plik app.config i odkomentuj parametry połączenia (zapisz plik)
  4. Otwórz edmx, przejdź do właściwości, powinieneś zobaczyć zaktualizowane parametry połączenia !!
Cesar Alvarado Diaz
źródło