public void DisposeWorksCorrectly() { //Arrange var connection = DbConnectionFactory.CreateTransient(); var context = new FooContext(connection); var unitOfWork = new EF6UnitOfWork(this._context, IsolationLevel.Unspecified); var repository = new BaseRepository <Foo>(unitOfWork); //Act repository.Insert(new Foo { Id = Guid.NewGuid() }); unitOfWork.SaveChanges(); unitOfWork.Dispose(); //Assert }
public EF6UnitOfWork Create(Guid id) { var sqlConnectionStringBuilder = new SqlConnectionStringBuilder(NetfoxWebSettings.Default.ConnectionString) { InitialCatalog = NetfoxWebSettings.Default.InvestigationPrefix + id }; var observableNetfoxDBContext = this.container.Resolve <IObservableNetfoxDBContext>(); if (observableNetfoxDBContext.Database.Connection.State == ConnectionState.Open) { observableNetfoxDBContext.Database.Connection.Close(); } var connection = new SqlConnectionStringBuilder(observableNetfoxDBContext.Database.Connection.ConnectionString); connection.InitialCatalog = NetfoxWebSettings.Default.InvestigationPrefix + id; connection.Password = sqlConnectionStringBuilder.Password; connection.UserID = sqlConnectionStringBuilder.UserID; observableNetfoxDBContext.Database.Connection.ConnectionString = connection.ConnectionString; observableNetfoxDBContext.Database.CreateIfNotExists(); this.unitOfWork = new EF6UnitOfWork(dbContextFactory(this.container, sqlConnectionStringBuilder), IsolationLevel.Unspecified); return(this.unitOfWork); }