DNN DAL 2 транзакции через несколько репозиториев - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть следующий дизайн приложения

  1. Объекты (Модели)
    • Клиент
    • Заказ
  2. Хранилища -Обертка вокруг репозитория DNN DAL2 для CRUD
    • CustomerRepo
    • OrderRepo

Как реализовать поддержку транзакций в нескольких репозиториях

Например,

using(IDataContext ctx = DataContext.Instance()) {
    ctx.BeginTransaction();


       CustomerRepo.Create(customer);
       order.CustomerID = customer.ID;
       OrderRepo.Create(Order);


    ctx.CommitTransaction();
}

Пример CustomerRepo.

class CustomerRepo
{
    public Customer Create(Customer customer) {
         using(IDataContext ctx = DataContext.Instance()) 
         {

             var repo = ctx.GetRepository<Customer>();
             repo.Insert(customer);

         }
         return customer;
     }
}
...