У меня есть следующий дизайн приложения
- Объекты (Модели)
- Хранилища -Обертка вокруг репозитория DNN DAL2 для CRUD
Как реализовать поддержку транзакций в нескольких репозиториях
Например,
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;
}
}