2016-01-15 3 views
0

У меня есть вопрос, связанный с архитектурой 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.

Какие подходы вы использовали и какие у вас были преимущества и недостатки?

+0

ваш вопрос или BusinessLogic, раздумывая DATAACCESS организации? –

+0

@MaxKvt Оба. Какие существуют подходы к организации транзакций бизнес-логики над EF. –

ответ