Entity Framework: DbContext i ustawianie ProviderName

Kiedy zaczniesz od DbContext i użyjesz konstruktora bez parametrów, załaduje on ciąg połączenia z web.config. Istnieje również możliwość jawnego określenia parametru connectionString przy użyciu jednego z innych konstruktorów DbContext.

Moja szczególna sytuacja wskazuje, że ciąg połączenia NIE MOŻE być określony w web.config, ponieważ lokalizacja serwera / nazwy użytkownika i hasła są określane w czasie wykonywania. Łatwo naprawić? Użyj powyższego konstruktora, aby określić ciąg połączenia? Źle.

Problem polega na tym, że gdy określisz ciąg połączenia za pomocą wspomnianego konstruktora, nadal próbuje on użyć domyślnego dostawcy, więc jeśli używasz jednego lub więcej niestandardowych dostawców, tak jak ja, to nie będzie działać.

Jestem pewien, że mogę zmienić domyślnego dostawcę w web.config, ale chcę używać wielu dostawców, więc to nie pomoże.

Jedynym możliwym sposobem obejścia tego problemu jest użycie ObjectContext zamiast DbContext, który wydaje się umożliwiać określenie dostawcy wraz z łańcuchem połączenia z bazą danych.

Czy jest jakiś inny sposób na to? Czy moje obejście jest dość rozsądne?

Wierzę, że mogę również utworzyć DbContext z instancji ObjectContext.

questionAnswers(3)

yourAnswerToTheQuestion