2012-04-14 1 views
1

Я использую EF-код для управления моим соединением с явной строкой соединения, объявленной в web.config. Я хотел бы запланировать процесс очистки БД (например, каждый раз удалять тестовые транзакции), поэтому я создаю поток из Role.OnStart() с надлежащим управлением параллелизмом между экземплярами.Использование EF из потока, созданного из Role.OnStart()

Но я получаю исключения базы данных БД, такие как БД, не соответствующая моей модели, тогда как я уверен, что это так (тот же код, который используется из «внутри», работает хорошо). Поэтому я предполагаю, что web.config не используется из потока, поэтому EF, вероятно, использует строку подключения по умолчанию.

Каким будет лучший способ использовать мою строку подключения?

Благодаря

ответ

4

OnStart метод не работает в том же процессе вашего веб-приложения означает, что не делает использование web.config. Я предлагаю вам сохранить строку подключения в конфигурации службы и прочитать ее здесь при инициализации вашего контекста.

Другое преимущество заключается в том, что вы меняете настройку без повторного развертывания приложения.

+0

Да, это то, что я выполнял в настоящее время (вызов конструктора DbContext в пользовательском конструкторе DbContext и передача connectionString, извлеченного из RoleEnvironment, делает его полностью прозрачным для остальной части приложения, btw). Мне просто интересно, есть ли способ использовать web.config из процесса роли ... Спасибо. – ThomasWeiss

Смежные вопросы