Где должна находиться функция SaveChanges() — в единице работы или в общем репозитории?C#

Место общения программистов C#
Ответить
Anonymous
 Где должна находиться функция SaveChanges() — в единице работы или в общем репозитории?

Сообщение Anonymous »

Я реализую стандартный шаблон репозитория(

Код: Выделить всё

Controller -> Service -> Repository
) в проекте веб-API ASP.NET с использованием Entity Framework Core. У меня есть GenericRepository для операций CRUD и IUnitOfWork для управления транзакциями.
Мой IUnitOfWork в настоящее время обрабатывает методы BeginTransaction(), Commit(), Rollback(), Dispose() и Save().
Я столкнулся с дилеммой относительно размещения Save() (или SaveChangesAsync):

1. Должно ли это быть сказано в IUnitofWork? Если да, то если у меня есть класс обслуживания, который работает с одним репозиторием, мне придется внедрить UoW только для метода Save(). Кажется, это накладные расходы.

2. Должно ли оно быть в GenericRepository? Если да, то должно ли это быть в отдельных методах CRUD или в виде отдельного метода, который просто вызывает DbContext.SaveChanges?
Я понимаю, что EF Core уже реализует UnitOfWork для меня, но мне рекомендовали сделать это следующим образом. Я в этом запутался.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/799 ... repository
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»