public IDeferred DropTable()
        {
            var deferredQuery = new DeferredQuery(_dataProvider);

            deferredQuery.Add(QueryExpression.DropTable(_entityModel.Table.TableName));

            return(deferredQuery);
        }
        public IDeferred CreateTable()
        {
            var deferredQuery = new DeferredQuery(_dataProvider);

            deferredQuery.Add(new CreateTableQueryBuilder <T>(_entityModel).BuildQuery());

            return(deferredQuery);
        }
        public IDeferred TableExists(out DeferredResult <bool> tableExists)
        {
            var resultSource = new DeferredResultSource <bool>();

            tableExists = resultSource.DeferredResult;

            var deferredQuery = new DeferredQuery(_dataProvider);

            deferredQuery.Add(
                QueryExpression.TableExists(_entityModel.Table.TableName),
                new TableExistsResultProcessor(resultSource)
                );

            return(deferredQuery);
        }