static void Main(string[] args) { IIdentity bankId; using (var uow = new EFCoreUnitOfWork()) { var manager = Manager.Create(uow.Repository.NextIdentity(), "First Last"); var bank = Bank.Create(uow.Repository.NextIdentity(), "123 Street", manager, new List <Atm>()); bankId = bank.Id; } IIdentity atmId; using (var uow = new EFCoreUnitOfWork()) { var createdBank = uow.Repository.GetBankById(bankId); var atm = createdBank.NewAtmInstalled(uow.Repository.NextIdentity(), 5000); atmId = atm.Id; } using (var uow = new EFCoreUnitOfWork()) { var bank = uow.Repository.GetBankById(bankId); bank.AtmBalanceChanged(atmId, -1000); var updatedBank = uow.Repository.GetBankById(bankId); } Console.ReadKey(); }
public void WarningIfCommittedOrAbandoned() { const string ExpectedMessage = "UnitOfWork must be either completed or abandoned before disposing."; logger.Setup(x => x.Error(ExpectedMessage)); using (var dbContext = new TestDbContext(options)) { var unitOfWork = new EFCoreUnitOfWork <TestDbContext>(dbContext, eventDispatcher.Object, logger.Object); unitOfWork.Dispose(); // Dispose again should not log error twice unitOfWork.Dispose(); } logger.Verify(x => x.Error(ExpectedMessage), Times.Once); }