public void Should_Use_Two_Transactions_In_One_TransactionScope() { string test_name = Guid.NewGuid().ToString(); using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider)) { ICustomerRepository customerRepository = new CustomerRepository(unitOfWork); var customer = customerRepository.AsQueryable(f => f.Name == test_name).FirstOrDefault(); Assert.IsNull(customer); } using (new TransactionScope(TransactionScopeOption.Required)) { using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider)) { unitOfWork.BeginTransaction(); ICustomerRepository customerRepository = new CustomerRepository(unitOfWork); customerRepository.Save( new Customer { Code = "test_code", Name = test_name, Type = CustomerType.LoyalCustomers, CreatedOn = DateTime.Now, DeletedOn = null }); unitOfWork.Commit(); } using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider)) { unitOfWork.BeginTransaction(); ICustomerRepository customerRepository = new CustomerRepository(unitOfWork); var customer = customerRepository.AsQueryable(f => f.Name == test_name).FirstOrDefault(); Assert.IsNotNull(customer); unitOfWork.Commit(); } } }
private void CreateCustomer(string name) { using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider)) { unitOfWork.BeginTransaction(); ICustomerRepository customerRepository = new CustomerRepository(unitOfWork); customerRepository.Save( new Customer { Code = "test_code", Name = name, Type = CustomerType.LoyalCustomers, CreatedOn = DateTime.Now, DeletedOn = null }); unitOfWork.Commit(); } }