Пример #1
0
        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);
        }