Как легко сравнить объект домена со связанными объектами, чтобы обновить базу данных с помощью EF Core? - PullRequest
0 голосов
/ 27 сентября 2018

Для моего проекта ASP.NET Core API я плавно перехожу от стандартного подхода к шаблону репозитория (с большей частью бизнес-логики на уровне репо) к очень соблазнительному подходу DDD.Мой доменный объект всегда будет отличаться от моих сущностей, так как я поддерживаю существующее приложение с установленной базой данных.

Таким образом, процесс будет (исправьте меня, если я ошибаюсь):

  1. загрузить агрегат из базы данных
  2. выполнить работу на уровне приложения (полагаясь, конечно, на модель домена / внутреннюю логику) и
  3. обновить базу данных с результатом

Шаг (1) в порядке, благодаря autopper.

Шаг (2) великолепен, (наконец-то, программирование!)

Шаг (3) - моя проблема: Я все еще держу исходную модель сущности из шага (1), и у меня есть модель предметной области из шага (2), которую я могу снова преобразовать в сущности благодаря Automapper.

Вопрос: есть ли способ сравнениялица (1) и (2) и попросить EF Core 2.1 выполнить обновление (возможно, с использованием состояний)?

Я уже использую AddOrUpdate(), что действительно хорошо для добавления или обновления, но не для удаления значенияобъекты, например.

1 Ответ

0 голосов
/ 08 мая 2019

Если кто-то заинтересован в ответе: я использовал ObjectState согласно совету Джули Лерман https://msdn.microsoft.com/en-us/magazine/mt767693.aspx

...