public void OpenConnection()
        {
            var path = GetTempFilePath(".cruise");

            RegesterFileForCleanUp(path);

            using (var db = new SQLiteDatastore(path))
            {
                var conn = db.OpenConnection();

                db.PersistentConnection.Should().BeSameAs(conn);
                conn.State.Should().Be(ConnectionState.Open);

                db.ReleaseConnection();

                db.PersistentConnection.Should().BeNull();
                try
                {
                    conn.State.Should().Be(ConnectionState.Closed);
                }
                catch (ObjectDisposedException)
                {
#if !SYSTEM_DATA_SQLITE
                    throw;
#endif
                }

                db.ConnectionDepth.Should().Be(0);
            }
        }
예제 #2
0
        public void BackupDatabase(SQLiteDatastore targetDatabase)
        {
            var targetConn = targetDatabase.OpenConnection();

            try
            {
                BackupDatabase(targetConn);
            }
            finally
            {
                targetDatabase.ReleaseConnection();
            }
        }
        public void ReleaseConnection_force()
        {
            using (var db = new SQLiteDatastore())
            {
                var connection = db.OpenConnection();

                var trans  = connection.BeginTransaction();
                var result = connection.ExecuteScalar("SELECT 1;", null, trans);
                //trans.Commit();

                db.ReleaseConnection(true);

                try
                {
                    connection.State.Should().Be(ConnectionState.Closed);
                }
                catch (ObjectDisposedException)
                {
#if !SYSTEM_DATA_SQLITE
                    throw;
#endif
                }
            }
        }