Мне нужно сделать некоторое сопоставление между объектами (например, PersonModel to PersonViewModel) и изучать различные подходы к этому. В частности, я работаю с Entity Framework и пытается сопоставить сгенерированные модели с viewmodel.Каковы различные подходы к сопоставлению объектов и объектов в .NET?
Однако я еще не нашел статью или ресурс, который компилирует список того, как вы можете это сделать. До сих пор, я наткнулся на следующее:
- неявное преобразование (я думаю, что это самый основной подход, так как вы вручную сопоставить свойства одного объекта к другому, его простые, но утомительные?)
- Методы расширения (не работал с этим пока)
- отражения (я переделал немного, но только удались очень простое отображение)
- Automapper (очень популярный, но у меня возникают проблемы, делая это хорошо работать с EF)
- Value Injecter (еще не сработал)
- Испустите Mapper (не работал с этим еще, но, вероятно, я бы проблемы, делая его работу с EF?)
Можете ли вы помочь указать, и более подробную информацию о подходах, имеющихся там, а также профи/минусы каждого? Например, я видел некоторые, которые упомянули, что Automapper медленный по сравнению с ручным отображением? Или, возможно, укажите статью, которая занимается этим?
EDIT: так как некоторые из них могут спросить, что проблема у меня с AutoMapper, пожалуйста, увидеть это: Automapper: How to map IList to EntityCollection
Вы спрашиваете о целой статье или даже книге. SO - это сайт Q & A. И Automapper не имеет проблем с работой с EF, главным образом потому, что объекты, возвращаемые EF, являются обычными объектами. Если вы используете специальные классы EF, такие как 'EntityCollection', вы делаете это неправильно. Проверьте все обучающие программы, и вы увидите, что они используют самый простой 'ICollection' –