Gdy czerpiesz z DbContext i używasz konstruktora bez parametrów, załaduje on ciąg połączenia z web.config. Istnieje również możliwość jawnego określenia metody connectionString przy użyciu jednego z innych konstruktorów DbContext.Entity Framework: DbContext i ustawienie ProviderName
Moja szczególna sytuacja nakazuje, że nie można określić ciągu połączenia w pliku web.config, ponieważ lokalizacja serwera/nazwy użytkownika i hasła jest określana w czasie wykonywania. Łatwa naprawa, prawda? Wystarczy użyć wyżej wymienionego konstruktora, aby określić ciąg połączenia? Źle.
Problem polega na tym, że podczas określania ciągu połączenia za pomocą wspomnianego konstruktora nadal próbuje on korzystać z domyślnego dostawcy, więc jeśli używasz jednego lub więcej niestandardowych dostawców, tak jak ja, to nie zadziała.
Jestem pewien, że mogę zmienić domyślnego dostawcę w web.config, ale chcę użyć wielu dostawców, więc nie zrobię tego.
Jedynym możliwym sposobem obejścia tego jest użycie ObjectContext zamiast DbContext, który wydaje się umożliwiać określenie dostawcy wraz z ciągiem połączenia z bazą danych.
Czy jest jakiś inny sposób na zrobienie tego? Czy moje obejście jest dość uzasadnione?
Wierzę, że mogę również utworzyć DbContext z instancji ObjectContext.
Można użyć konstruktora, że trwa 'DbConnection'. –
Moją obawą jest to, że sam będę zarządzał życiem DbConnection. Nie jestem też całkowicie pewien, jak utworzyć DbConnection przy użyciu określonego dostawcy. – NoPyGod