Вопрос производительности уровня сервиса и репозиториев - PullRequest
1 голос
/ 16 сентября 2011

У меня есть несколько репозиториев в моем проекте для разных сущностей, и у каждого есть свой собственный текст данных (который приходит из базового класса для моих репозиториев).

На моем сервисном уровне часто бизнес-логика требует, чтобы я добавлял / редактировал объекты в нескольких репозиториях (следовательно, inturn, используя другой DataContext).

Поэтому, когда я заканчиваю тем, что делаю .SaveContext в нескольких репозиториях. Это плохо для меня, так как в идеале я должен иметь возможность нажать «Сохранить» в одном контексте, и один вызов ado.net в БД должен выполнить все задачи.

Что я здесь не так делаю?

Спасибо

1 Ответ

5 голосов
/ 16 сентября 2011

Вам необходимо рассмотреть использование шаблона Unit of Work с вашими репозиториями, поскольку он позволяет вашим нескольким репозиториям принимать участие в одной логической транзакции.

существует множество блоговпубликации в сети о том, как это сделать, включая

Также здесь есть хорошее руководство прохождение с использованием MVC и EF с шаблоном Unit of Work + Repository.

Так как вот хорошая диаграмма, объясняющая, как это работает;

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...