Entity Framework (Сущности классов) Сериализация - PullRequest
2 голосов
/ 08 января 2010

После прочтения о Enitity Framework у меня есть несколько вопросов:

1] Каков наилучший способ переноса сущностей между уровнями? a] Должен ли я создавать более легкие DTO для этого или я могу эффективно сериализовать Entitiy и передать его?

b] если я должен создать легкие DTO для эффективности, и после того, как я увидел хорошее использование Automapper, я не совсем понял, как это экономит дополнительное кодирование (, если это его цель ), я имею в виду, нам нужно написать свойства класса flattern (DTO), поэтому он сохраняет только ctor.

2] есть ли смысл строить классы Entitiy назад из DTO?

спасибо.

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Ответ на 1: Лучший способ передачи сущностей между уровнями зависит от вашего приложения. Вы можете создавать DTO, что является моим предпочтительным решением, хотя сериализация сущностей возможна , но вы должны убедиться, что это именно то, что вы хотите сделать, и помнить:

"Когда вы используете двоичную сериализацию и сериализацию контракта данных WCF, если сериализуемый объект имеет связанные объекты в графе объектов, эти объекты также сериализуются. Сериализация XML не сериализует связанные объекты."

Automapper работает автоматически, сопоставляя свойства, а не записывает все операторы, такие как:

dto.id = entity.id;
...
all other dto assignment operations

вы скоро увидите, что количество кода становится сложным, поэтому вы сохраните немало этих = этих строк кода, особенно если у вас есть классы представления, а также объекты dto, и я обнаружил, что это соответствует желаемому. Насколько мне известно, automapper будет работать только в том случае, если имена между сущностью и DTO одинаковы, и он может отображаться между типами этих свойств. Вы можете добавить правила отображения для преобразования между типами, хотя, если dto и сущность хранят данные в другом типе.

Ответ на 2: Если вы преобразуете объекты в DTO и модифицируете их на более высоких уровнях, как вы планируете сохранять их обратно через структуру сущностей? Обычно вы просто конвертируете их обратно в связанные сущности / создаете новую сущность и отправляете эти изменения.

0 голосов
/ 08 января 2010

Вы хотите посмотреть RIA Services . Он построен только для этого.

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