2016-02-16 5 views
0

Я создаю набор компонентов, назовем их сервисами, которые используют структуру сущностей для доступа к своим данным. Эти компоненты предназначены для использования в нескольких проектах в одном и том же решении. Мы хотели бы, чтобы эти компоненты были настолько «независимыми», насколько это возможно, что означает, что мы хотели бы обновить Entity Framework с 5 до 6 в одной службе и оставить EF5 на другом. Наше решение может выглядеть следующим образом:Как настроить структуру Entity Framework «Self Contained» в модуле

Solution 
    +- Application1 (referencing ServiceA and ServiceB) 
    +- Application2 (referencing ServiceA and ServiceC) 
    +- ... 
    +- ServiceA - Dll Using Entity Framework 5 
    +- ServiceB - Dll Using Entity Framework 5 
    +- ServiceC - Dll Using Entity Framework 6 

С Application1 у нас нет никаких проблем, как мы можем установить EF5, как NuGet пакет в нем и он используется как ServiceA и ServiceB, но как насчет Application2? Я не смог найти способ иметь как EF5, так и EF6 в проекте ... А как насчет конфигураций? Есть ли способ писать конфигурации для ServiceA и ServiceB только один раз, и не нужно повторять его для каждого отдельного приложения, используя их? Я бы предпочел избегать веб-сервисов ServiceA и ServiceB и поддерживать все взаимодействия между модулями «в процессе».

Спасибо заранее!

ответ

0

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

Чтобы смягчить проблему конфигурации, я полагаю, что я должен полагаться на «службу конфигурации» или, по крайней мере, выполнять большую часть конфигурации с помощью Code-Based Configuration (https://msdn.microsoft.com/en-us/data/jj680699.aspx) и защищать ее как можно больше от приложения.

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

  • Нет связанных вопросов^_^