Если вы следуете «естественному» (очень субъективному) потоку, это так:
К Создать Домен Модель
ViewModel -> Mapper -> Entity Entity -> Repository -> Mapper -> Persistence Entity
К Дисплей Обновление вида модели
Персистентная сущность -> Mapper -> ViewModel
В первой ситуации вы обрабатываете dto в объекте домена (применяете бизнес-правила и т. Д.), Затем отправляете его в хранилище, где оно сохраняется определенным образом (объекты EF)
Во второй ситуации вы хотите загрузить модель представления (DTO), которая будет использоваться для обновления модели домена. Вместо того, чтобы перезагружать всю сущность домена и затем отображать ее в DTO, вы делаете это прямо из хранилища.
Вы, вероятно, скажете, что эти случаи не относятся к вам, так как вы работаете непосредственно против EF. Ну, вот в чем и состоит хитрость, модель предметной области! = Модель постоянства! = Модель просмотра. Все они разные и имеют разные проблемы.
Таким образом, при правильном разделении у вас всегда будут: модель представления -> карта -> объект домена -> карта -> объект персистентности и в обратном направлении: объект персистентности -> карта -> модель просмотра