Предоставление сущностей Entity Framework другим клиентам - PullRequest
1 голос
/ 05 декабря 2011

У меня есть библиотека классов .NET 4, которая содержит модель данных Entity Framework и набор классов, которые предоставляют общие функциональные возможности с использованием этих объектов. Эти классы используются в разных типах приложений.

Итак, мой вопрос: будет ли хорошей практикой выставлять сущности, содержащиеся в библиотеке классов, другим приложениям?

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

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

Учитывая более длительный период времени, и если ваша склонность к тому, чтобы быть пуристом, то начинает становиться плохойпопрактикуйтесь, потому что вы увеличиваете связь, например, если начинаете добавлять атрибуты, чтобы иметь дело с постоянством, проверкой и сериализацией.

Некоторые способы избежать этого - использовать что-то вроде AutoMapper сгенерированный код или фасады с ручным кодированием, сервисные уровни и / или адаптеры для минимизации эффектов.

0 голосов
/ 06 декабря 2011

Поскольку структура сущностей меняется при изменении базы данных, я не верю, что это обеспечит адекватный API.Вместо этого я бы рекомендовал создать объект передачи данных, который будет выступать в качестве посредника между внешним кодом и каждой сущностью, к которой необходимо получить доступ.Кроме того, рассмотрите возможность создания класса Facade (сервисный уровень), который будет служить посредником между внутренними компонентами вашей библиотеки и внешним «клиентом».Хорошая статья о DTO: http://msdn.microsoft.com/en-us/magazine/ee236638.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...