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.

Odpowiedzi:


191

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


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.


+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.


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.


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 !!
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.