Вопрос

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

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

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

2] есть ли какой-то смысл Создавать классы объектов Назад из DTO ?

Спасибо.

Это было полезно?

Решение

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

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

Automapper работает путем автоматического сопоставления свойств вместо того, чтобы писать все инструкции сантехники, такие как:

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

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

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

Другие советы

Вы хотите посмотреть на Услуги RIA.Он создан именно для этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top