Платформа сущностей использует транспортные объекты для отправки через WCF - PullRequest
0 голосов
/ 08 февраля 2011

Я читал эту книгу об услугах WCF. Он сказал, что должен создать службу WCF, которая содержит модель сущности базы данных. Например, предположим, что в этой базе данных была таблица с именем User. Затем автор приступил к созданию нового класса с именем UserDto, который содержал почти те же поля, что и поля в таблице базы данных для пользователя. Причиной этого, по его словам, было то, что при передаче данных через WCF вы не хотите передавать фактический объект, созданный объектом, так как он содержит данные, которые не нужны (и использует полосу пропускания).

Что я хотел выяснить, есть ли какой-нибудь генератор классов, чтобы сконструировать эти транспортные классы для меня? Если у меня есть база данных из 10 или более объектов, я не хочу сидеть и жестко кодировать 10 объектов на бизнес-уровне. Есть ли инструмент, который может сделать что-то подобное для меня (например, генератор кода)?

Или кто-нибудь может предложить лучший способ сделать это?

Ответы [ 4 ]

2 голосов
/ 08 февраля 2011

Использование объектов POCO нормально.Но если вы хотите использовать обычные EF-сгенерированные объекты для DTO, нет абсолютно никаких причин не делать этого.Они были специально разработаны, чтобы хорошо играть с WCF, поэтому, если в ваших таблицах нет очень большого количества столбцов, которые вы не хотите видеть отправленными клиенту, вполне законно упростить ваш код и вашу жизнь с помощью EFсгенерированные классы.Мы делаем именно это на достаточно большом сервисе WCF (~ 5000 строк кода, ~ 30 сущностей), и у нас не было никаких проблем с производительностью или архитектурой, которые могли бы решить отдельные слои данных.

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

0 голосов
/ 08 февраля 2011

Подробнее о генераторе кода T4 , который является частью Visual Studio с версии 2008.

Он может делать такие вещи. На самом деле: все шаблоны генерации кода EF (для объектов POCO и самоконтроля) являются шаблонами T4 ... как, например, шаблоны для генерации представлений в ASP.NET MVC.

Отличные ресурсы для начала работы с T4:

и еще много других сайтов, если вы спросите своих друзей Bing и Google: -)

0 голосов
/ 08 февраля 2011

http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313

Это было именно то, что я искал!

0 голосов
/ 08 февраля 2011

Посмотрите на поддержку EF для POCO. Существует также шаблон POCO, который будет генерировать эти объекты POCO на основе модели, определенной в EDMX.

EF и POCO

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