Совместное использование моделей Entity Framework с другими проектами с использованием MEF - PullRequest
0 голосов
/ 23 ноября 2011

В настоящее время я занимаюсь разработкой службы Windows и собираюсь использовать MEF для создания всех компонентов служб во время выполнения. Модуль доступа к данным (проект) использует Entity Framework 4.1 и класс обслуживания домена для выполнения операций CRUD на модели объекта.

Проблема, с которой я столкнулся, заключается в том, как совместно использовать модели вне проекта DAL при составлении DAL в рабочий класс в основном проекте.

Например, это один из методов в интерфейсе контракта DAL

Function GetInspectionFaults() As IQueryable(Of InspectionFault)

Этот интерфейс в настоящее время находится в проекте DAL (не является общим / ссылочным проектом, содержащим другие контрактные интерфейсы), так как ему требуются ссылки на модель сущности для типов POCO.

Как мне поделиться этими типами POCO?

Phil

1 Ответ

1 голос
/ 23 ноября 2011

Хотя это может быть немного больше работы, вы можете рассмотреть возможность иметь отдельный набор моделей (посмотреть модели, если хотите), которые у вас есть в общей сборке (возможно, сборка общего / контракта). Это позволило бы вашим деталям использовать общий набор типов, которые явно не зависят от вашего DAL.

Что касается разделения интересов, я бы не рекомендовал экспортировать ваш DAL напрямую, но предоставил бы абстракцию к нему через что-то вроде шаблона Repository. Репозиторий будет обрабатывать взаимодействие с DAL и сопоставление вашего домена с вашими моделями представлений.

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

...