У меня есть вопрос, связанный с архитектурой n-tier
с использованием Entity Framework
на уровне доступа к данным в веб-бэкэнде. Пожалуйста, поделитесь своим опытом со мной - как вы организуете бизнес-транзакции над сущностью?Entity framework & business transactions
- Сначала, что я нашел, используется модель
Unit Of Work
. ЭтоUoW
Объект - это своего рода агрегатор хранилищ, который имеет то же самоеDbContext
между ними. Но я не уверен, что этот подход может быть полезен с огромной бизнес-логикой. Второй подход, имеющий в
Entity framework transaction factory
, который будет инкапсулировать создание новой сделки на бизнес-уровне, какusing (var transaction = transactionsFactory.Start()) { //business logic here }
И есть инъекции объем один для каждого запроса HTTP. последних на уровне данных я буду называть
using (var db = dbContextFactory.GetContext())
{
//data operations
db.SaveChanges();
}
Для выполнения DbContext
операций в одной транзакции. Недостатком этого подхода является необходимость разрешить distrubuted transactions
в MS SQL Server
.
Какие подходы вы использовали и какие у вас были преимущества и недостатки?
ваш вопрос или BusinessLogic, раздумывая DATAACCESS организации? –
@MaxKvt Оба. Какие существуют подходы к организации транзакций бизнес-логики над EF. –