예제 #1
0
        public void Execute(uint key)
        {
            DatabaseItem item = new DatabaseItem
            {
                Key = key
            };

            statement.Bind(item);
            statement.Execute();
        }
예제 #2
0
        public void Persist(uint key, T item)
        {
            StartTransactionIfNecessary();
            DatabaseItem dbItem     = Convert(key, item);
            var          statements = statementPool.Rent();

            statements.InsertStatement.Execute(dbItem);
            statementPool.Return(statements);
            CommitIfNecessary();
        }
예제 #3
0
        public T Load(uint key)
        {
            lock (transactionLock)
            {
                if (isTransactionOpen)
                {
                    commitStatement.Execute();
                    isTransactionOpen = false;
                    uncommittedCount  = 0;
                }
            }
            var          statements = statementPool.Rent();
            DatabaseItem dbItem     = statements.SelectStatement.Execute(key);
            var          result     = Convert(dbItem);

            statementPool.Return(statements);
            return(result);
        }
예제 #4
0
 private T Convert(DatabaseItem dbItem)
 {
     return(JsonConvert.DeserializeObject <T>(dbItem.SerializedItem));
 }
예제 #5
0
 public void Execute(DatabaseItem item)
 {
     statement.Bind(item);
     statement.Execute();
 }