У меня есть MVC3 и служба WCF REST , которые размещены в Azure и используют SQL Azure с Entity Framework 4.1 в качестве ORM.
Я хочу представить схему шардингачтобы увеличить масштабируемость этой настройки.
Поскольку Azure является хостинг-средой без сохранения состояния, в моей системе каждый отдельный запрос заполняется идентификатором пользователя, который я могу использовать для генерации хэша для создания строки подключения, которая указывает нанужная база данных (от пользователя).
В настоящее время я использую Ninject с расширениями WCF и MVC для добавления EF DbContext в мои репозитории.Жизненный цикл контекста находится в области запросов (моя служба отдыха использует aspnetcompatibility).
Мой вопрос: Как мне перехватить эту инъекцию и заполнить DbContext правильной строкой соединения?Использование пользовательского ServiceHostFactory в WCF, например?
Я посмотрел на расширение Ninject.Interception, но не смог понять, как настроить его для перехвата HTTP-запроса до активации моих служб и контроллеров.
Это позволило бы мне использовать шардинг без рефакторинга моего существующего кода.