Я согласен с @AbdouMoumen, что гораздо проще использовать модельные объекты на уровне представления. Уровень обслуживания должен предоставлять API для сохранения этих объектов в хранилище данных (дБ). Уровень обслуживания не должен тупо дублировать юриста хранилища (т. Е. Сохранить (сущность) для каждой сущности), а должен обеспечивать сохранение высокого уровня для совокупности сущностей. Например, у вас может быть Save (заказ) в слое сервиса, который приводит к обновлению более базовых объектов, таких как инвентарь, клиент, учетная запись.

ользуюService Layer --> Repository --> Entity Framework (Code-First) w/POCO objects подход, и я испытываю трудности с обновлением сущностей.

Я использую AutoMapper для сопоставления моих доменных объектов с моими моделями представления, и это хорошо работает для получения данных, нет, как мне вернуть эти изменения обратно в базу данных?

Используя чистые объекты POCO, я бы предположил, что никакого отслеживания изменений не существует, поэтому я вижу, что мой единственный вариант - это обрабатывать его самостоятельно. Вы просто убедитесь, что ваши View модели имеют ТОЧНО те же свойства, что и ваши доменные объекты? Что если я просто поменяю поле или два в модели просмотра? Не будут ли остальные поля в доменном объекте перезаписаны в базе данных значениями по умолчанию?

С учетом сказанного, какой подход лучше?

Спасибо!

редактировать

Итак, на чем я спотыкаюсь, так это на примере простогоCustomer:

1)Controller имеет услугу,CustomerService, который вызывает услугиGetCustmoerByID метод.

2)Service звонки вCustomerRepository и получаетCustomer объект.

3)Controller использует AutoMapper для сопоставленияCustomer кViewModel.

4)Controller протягивает модельView, Все отлично!

Теперь в представлении вы делаете некоторые модификации клиента и отправляете его обратно на контроллер, чтобы сохранить изменения в базе данных.

Я бы предположил, что в этот момент объект отделен. Таким образом, модель должна обладать ТОЧНЫМИ свойствами, аналогичнымиCustomer объект? И нужно ли создавать скрытые поля для каждого элемента, который вы не хотите показывать, чтобы они могли сохраниться обратно?

Как вы справляетесь с сохранением объекта обратно в базу данных? Что произойдет, если ваш вид / модель имеет дело только с парой полей объекта?

Ответы на вопрос(3)

Ваш ответ на вопрос