После прочтения о Enitity Framework у меня есть несколько вопросов:
1] Каков наилучший способ передачи объектов между уровнями? a] Я должен создать более легкие DTO для этого или я могу эффективно сериализировать Entitiy и перенести его?
b], если я должен создать легкие DTO, для Efficency, и после того, как я увидел хорошее использование Automapper, я не понял, как это экономит дополнительное кодирование (, если это его цель), я имею в виду, нам нужно написать свойства класса Flattern (DTO), поэтому он сохраняет только ctor.
2] есть ли какая-либо точка Building Entitiy Classes назад из DTO?
спасибо.
Ответ на 1: Лучший способ переноса объектов между уровнями зависит от вашего приложения. Вы можете создать DTO, который является моим предпочтительным решением, хотя сериализация сущностей возможно, но вам нужно убедиться, что это на самом деле то, что вы хотите сделать и помните
"Когда вы используете сериализацию сечений двоичной и сериализации данных WCF, если сериализуемый объект имеет связанные объекты в графе объектов, эти объекты также сериализуются. Сериализация XML не сериализует связанные объекты."
Automapper работает путем автоматического сопоставления свойств, а не для записи всех утверждений о сантехнике, таких как:
dto.id = entity.id;
...
all other dto assignment operations
вы скоро увидите, что количество сантехнического кода складывается, поэтому сэкономит довольно много этого = этих строк кода, особенно если у вас есть классы просмотра, а также объекты dto, и я нашел, что это соответствует тому, что я хотел идеально. Насколько я знаю, automapper будет работать только в том случае, если имена совпадают между сущностью и DTO, и он может отображать между типами этих свойств. Вы можете добавлять правила сопоставления для преобразования между типами, но если dto и entity хранят данные в другом типе.
Ответ на 2: Если вы конвертируете объекты в DTO и изменяете их на более высоких уровнях, как вы планируете сохранять их обратно через инфраструктуру сущности? Обычно вы просто конвертируете их обратно в соответствующие объекты/создаете новый объект и отправляете эти изменения.
Вы хотите посмотреть RIA Services. Он построен именно для этого.