Я всегда создаю один метод в репозитории, который называется Add, он добавляет новый объект, если он новый, и обновляет объект, если он существует, но сохраняет или обновляет его, не принадлежа репозиторию, потому что репозиторий не отслеживал состояние икакой новый или какой существовавший ранее, это принадлежит к единице работы, вот почему шаблон единицы работы говорит о том, что вы должны отслеживать то, что вы изменили;в противном случае эти данные не будут записаны обратно в базу данных. Поэтому вам потребуется добавить этот метод в единицу рабочего класса в зависимости от вашего подхода ORM или вашего DAL. Поэтому единица работы будет отслеживать
- Новые объекты
- Грязные объекты
- Удалить объект
И в конце вы получите
- Commit (Сохранить) ->добавить новый и обновить существующий или
- Откат