Inheritance: IDisposable
        /// <summary>
        /// Creates and returns a new instance for the given connection string.
        /// </summary>
        public static DataAccess Create(string connectionString)
        {
            var csb = new DbConnectionStringBuilder();
            csb.ConnectionString = connectionString;

            string provider = GetProvider(csb);

            var da = new DataAccess(GetFactory(provider), csb.ConnectionString, provider);
            return da;
        }
 public DatabaseInitializer(DataAccess dataAccess)
 {
     _dataAccess = dataAccess;
 }
 public void Setup()
 {
     CreateDatabase();
     _subject = DataAccessFactory.Create(TestConnectionString);
 }
 public LongValueFromDatabaseRetriever(DataAccess dataAccess, ILogger logger)
 {
     this.dataAccess = dataAccess;
     this.logger = logger;
 }
        public void ExecuteScript_should_use_CommandTimeout_specified_in_the_connection_string()
        {
            // arrange
            _subject = DataAccessFactory.Create(TestConnectionString + ";CommandTimeout=1");

            // act
            _subject.OpenConnection();
            using (var tran = _subject.BeginTransaction())
            {
                try
                {
                    _subject.ExecuteScript(tran, "WaitFor Delay '00:00:01'");
                }
                catch(Exception ex)
                {
                    // assert

                    // Sql Server Compact (which is being used for these tests) does not
                    // support CommandTimeout values other than 0. So we will assume
                    // that if it barfs it is because our non-zero CommandTimeout was successfully (attempted to be) set.
                    Assert.IsInstanceOfType(typeof (ArgumentException), ex);
                    Assert.AreEqual("SqlCeCommand.CommandTimeout does not support non-zero values.", ex.Message);
                    return;
                }
            }

            Assert.Fail("Expected command timeout exception to be thrown.");
        }