Какая наилучшая реализация для изменения схемы базы данных во время выполнения с использованием Entity Framework 4?

Мы создаем мультитенантное приложение ASP.Net MVC 2 на SQL Server, используя модель «одна база данных, отдельная схема», обсуждаемая, среди прочего, здесь и здесь, где каждый клиент имеет одного или нескольких пользователей и разделен на свою собственную схему SQL Server для конкретного клиента.

Приложение использует Entity Framework 4. Чтобы пользователи разных клиентов могли получить доступ к данным в их схеме, нам необходимо указать схему при создании ObjectContext сущности.

Я видел несколько ссылок на этот инструмент (http://efmodeladapter.codeplex.com/), но ( 1) Я бы не хотел обновлять код каждый раз, когда EDMX генерируется, как указано в инструкции по использованию, и (2) он был создан до EF4, поэтому я надеюсь, что теперь есть более простой способ.

Итак, как лучше всего сделать это в EF4?

Спасибо


person erg39    schedule 13.07.2010    source источник
comment
Ни у кого нет идей? Немного разочаровывает, что эта функциональность, похоже, вообще не реализована. Похоже, что один из способов сделать это описан на blogs.microsoft.co.il/blogs/idof/archive/2008/08/22/.   -  person erg39    schedule 15.07.2010


Ответы (1)


Ну ладно тогда. Для будущих искателей я реализовал что-то вроде this example, хотя я загружаю ssdl, csdl и msl из встроенных ресурсов, например этот пример.

В реализации я при создании объекта репозитория в запросе действия MVC я использую контекст пользователя, чтобы определить, какая схема требуется, использую ранее отмеченный пример для написания схемы и создания EntityConnection, а затем использую его для создания моей сущности ObjectContext.

Кажется, он работает довольно хорошо, хотя меня немного беспокоит, что интуитивно кажется, что это может быть проблема с производительностью.

person erg39    schedule 17.07.2010