Entity Framework DefaultConnectionFactory игнорируется
Я использую Entity Framework 5 с Code First. Я написал обычайIDbConnectionFactory
который я хочу использовать для всех соединений, сделанных моимDbContext
класс, поэтому на раннем этапе жизненного цикла приложения, прежде чем любая работа с базой данных будет сделано, я называю
Database.DefaultConnectionFactory = new MyConnectionFactory();
Тем не мение,MyConnectionFactory.CreateConnection
никогда не вызывается, что говорит мне о том, что EF изменил его обратно - но отладчик показывает, что это все ещеMyConnectionFactory
после нескольких запросов. По какой-то причине он просто не использует его.
мойDbContext
инициализируется передачей имени строки подключения из файла app.config, и эти строки подключения указывают явного поставщика (как это и должно быть), поэтому мне интересно, не вызывает ли это переопределение для каждого подключения фабрики соединений на основе строки подключения. Это происходит, и могу ли я остановить это, не регистрируя совершенно нового провайдера (хотя, может быть, это не так сложно сделать?).
Все, что я вижу в Интернете по этому поводу (очень скрыто тегом defaultConnectionFactory в различных примерах app.config), позволяет предположить, что вы можете просто изменить его наIDbConnectionFactory
экземпляр на ваш выбор, и он будет работать, но мой не ведет себя.
Цель этого состоит в том, чтобы позволить мне запускать определенный набор операторов SQL при каждом открытии нового соединения, поэтому вторая часть этого вопроса была бы: кто-нибудь знает лучший способ сделать это?