public void TestTransaction2() { TestMember m = new TestMember() { Hehe = DateTime.Now.AddDays(12) }; _ps.Save(m); IPersistenceService ps2 = new EFPersistenceService(); ITransactionService ts2 = (ITransactionService)ps2; TestMember mConcurrent = ps2.GetById <TestMember, int>(m.ID); Assert.AreNotSame(m, mConcurrent); var mts = ts2.ExecuteInTransaction(() => { mConcurrent.Hehe = DateTime.Today.AddDays(20); ps2.Update(mConcurrent); return(true); }); Assert.AreNotSame(m, mConcurrent); try { m.Hehe = DateTime.Now.AddMinutes(5); _ps.Update(m); Assert.Fail(); } catch (Exception e) { Assert.AreEqual(typeof(DbUpdateConcurrencyException), e.GetType()); } }
public AnwendungskernFacade() { IPersistenceService persistenceService = new EFPersistenceService(); ITransactionService transactionService = (ITransactionService)persistenceService; mitarbeiterServices = new MitarbeiterkomponenteFacade(persistenceService, transactionService); kundenServices = new KundenkomponenteFacade(persistenceService, transactionService, mitarbeiterServices as IMitarbeiterServicesFuerKunden); kursServices = new KurskomponenteFacade(persistenceService, transactionService, kundenServices as IKundenServicesFuerKurse, mitarbeiterServices as IMitarbeiterServicesFuerKurse); rechnungsServices = new RechnungskomponenteFacade(persistenceService, transactionService, kursServices as IKursServicesFuerRechnungen); }