Entity Framework и ADO.NET с шаблоном "Единица работы"

У нас есть система, созданная с использованием Entity Framework 5 для создания, редактирования и удаления данных, но проблема, с которой мы сталкиваемся, заключается в том, что иногда EF слишком медленный или просто невозможно использовать платформу сущностей (Views, которая создает данные для таблиц на основе участия пользователей). в определенных группах в базе данных и т. д.) и нам приходится использовать хранимую процедуру для обновления данных.

Однако мы столкнулись с проблемой, когда нам нужно сохранить изменения в EF, чтобы сохранить данные в базе данных, а затем вызвать хранимые процедуры, мы не можем использовать ITransactionScope, поскольку он всегда повышается до распределенной транзакции и / или блокирует таблицы для выбора во время транзакции.

Мы также пытаемся ввести шаблон DomainEvents, который будет ставить в очередь события и вызывать их после изменений сохранения, чтобы у нас были данные, которые нам нужны в БД, но тогда мы можем закончить с выполнением первой части, а второй - с ошибкой.

Есть ли хорошие способы справиться с этим или нам нужно полностью отказаться от EF для этого сценария?

1 ответ

У меня был похожий сценарий. Позже я делю процесс на маленькие и использую только EF, и делаю каждый маленький процесс коротким. Даже общее время больше, но система проще в обслуживании и масштабировании. Также я свернул соединения, только обновил сам объект, отключил EF'S AutoDetectChangesEnabled и ValidateOnSaveEnabled.
Иногда, если вы смотрите на свою проблему по-разному, у вас может быть лучшее решение. Удачи!

Другие вопросы по тегам