示例#1
0
        private void handleCommandException(NpgsqlCommand cmd, Exception e)
        {
            this.SafeDispose();
            Logger.LogFailure(cmd, e);

            MartenExceptionTransformer.WrapAndThrow(cmd, e);
        }
示例#2
0
        public void CompletelyRemove(Type documentType)
        {
            var mapping = _options.Storage.MappingFor(documentType);

            using var conn = CreateConnection();
            conn.Open();

            var writer = new StringWriter();

            foreach (var schemaObject in ((IFeatureSchema)mapping.Schema).Objects)
            {
                schemaObject.WriteDropStatement(_options.Advanced.Migrator, writer);
            }

            var sql = writer.ToString();
            var cmd = conn.CreateCommand(sql);

            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MartenExceptionTransformer.WrapAndThrow(cmd, e);
            }
        }
示例#3
0
        public async Task CompletelyRemoveAsync(Type documentType)
        {
            var mapping = _options.Storage.MappingFor(documentType);

            using var conn = _tenant.CreateConnection();
            await conn.OpenAsync();

            var writer = new StringWriter();

            foreach (var schemaObject in ((IFeatureSchema)mapping.Schema).Objects)
            {
                schemaObject.WriteDropStatement(_options.Advanced.DdlRules, writer);
            }

            var sql = writer.ToString();
            var cmd = conn.CreateCommand(sql);

            try
            {
                await cmd.ExecuteNonQueryAsync();
            }
            catch (Exception e)
            {
                MartenExceptionTransformer.WrapAndThrow(cmd, e);
            }
        }
        public async Task <TResult> ExecuteAsync <TResult>(Expression expression, CancellationToken token, ResultOperatorBase op)
        {
            try
            {
                var builder = new LinqHandlerBuilder(this, _session, expression, op);
                var handler = builder.BuildHandler <TResult>();

                await ensureStorageExistsAsync(builder, token).ConfigureAwait(false);

                return(await ExecuteHandlerAsync(handler, token).ConfigureAwait(false));
            }
            catch (Exception e)
            {
                MartenExceptionTransformer.WrapAndThrow(e);
            }

            return(default);