Entity Framework DefaultConnectionFactory jest ignorowany
Używam Entity Framework 5 z Code First. Napisałem zwyczajIDbConnectionFactory
które chcę wykorzystać dla wszystkich połączeń wykonanych przez mojeDbContext
klasa, tak wcześnie w cyklu życia aplikacji, przed wykonaniem jakiejkolwiek pracy z bazą danych dzwonię
Database.DefaultConnectionFactory = new MyConnectionFactory();
Jednak,MyConnectionFactory.CreateConnection
nigdy nie jest wywoływany, co sugeruje mi, że EF zmienił go z powrotem - ale debuger pokazuje, że nadal jestMyConnectionFactory
po uruchomieniu kilku zapytań. Z jakiegoś powodu po prostu go nie używa.
MójDbContext
jest inicjowane przez przekazanie nazwy ciągu połączenia z pliku app.config, a te ciągi połączeń określają jawnego dostawcę (tak jak muszą), więc zastanawiam się, czy to nie powoduje zastąpienia fabryki połączeń przez połączenie na podstawie ciągu połączenia. Czy to się zdarza i czy mogę go zatrzymać bez zarejestrowania zupełnie nowego dostawcy (choć może nie jest to zbyt trudne?).
Cokolwiek widzę na ten temat w Internecie (zasłonięte znacznikiem defaultConnectionFactory w różnych przykładach app.config) sugeruje, że możesz po prostu zmienić go naIDbConnectionFactory
wybrany przez ciebie przypadek i zadziała, ale mój nie działa.
Ma to na celu umożliwienie mi uruchomienia określonego zestawu instrukcji SQL przy każdym otwarciu nowego połączenia, więc druga część tego pytania brzmi: czy ktoś zna lepszy sposób na to?