예제 #1
0
        public IReadOnlyList <T> Query <T>(string sql, params object[] parameters)
        {
            assertNotDisposed();
            var handler  = new UserSuppliedQueryHandler <T>(this, sql, parameters);
            var provider = new LinqQueryProvider(this);

            return(provider.ExecuteHandler(handler));
        }
예제 #2
0
        public Task <IReadOnlyList <T> > QueryAsync <T>(string sql, CancellationToken token = default(CancellationToken), params object[] parameters)
        {
            assertNotDisposed();
            var handler  = new UserSuppliedQueryHandler <T>(this, sql, parameters);
            var provider = new LinqQueryProvider(this);

            return(provider.ExecuteHandlerAsync(handler, token));
        }
예제 #3
0
        public Task <IReadOnlyList <T> > QueryAsync <T>(string sql, CancellationToken token = default(CancellationToken), params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(_store, sql, parameters);

            return(_connection.FetchAsync(handler, _identityMap.ForQuery(), null, Tenant, token));
        }
예제 #4
0
        public Task <IList <T> > QueryAsync <T>(string sql, CancellationToken token, params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(_schema, _serializer, sql, parameters);

            return(_connection.FetchAsync(handler, _identityMap.ForQuery(), null, token));
        }
예제 #5
0
        public IReadOnlyList <T> Query <T>(string sql, params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(_store, sql, parameters);

            return(_connection.Fetch(handler, _identityMap.ForQuery(), null, Tenant));
        }
예제 #6
0
        public IList <T> Query <T>(string sql, params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(_schema, _serializer, sql, parameters);

            return(_connection.Fetch(handler, _identityMap.ForQuery(), null));
        }
예제 #7
0
        private Task <IReadOnlyList <TDoc> > DoFullTextSearchAsync <TDoc>(string searchTerm, string config, string searchFunction, CancellationToken token)
        {
            assertNotDisposed();
            var sql     = $"where to_tsvector('{config}', data) @@ {searchFunction}('{config}', '{searchTerm}')";
            var handler = new UserSuppliedQueryHandler <TDoc>(_store, sql, new object[0]);

            return(_connection.FetchAsync(handler, _identityMap.ForQuery(), null, Tenant, token));
        }
예제 #8
0
        public Task <int> StreamJson <T>(Stream destination, CancellationToken token, string sql, params object[] parameters)
        {
            assertNotDisposed();
            var handler = new UserSuppliedQueryHandler <T>(this, sql, parameters);
            var builder = new CommandBuilder();

            handler.ConfigureCommand(builder, this);
            return(StreamMany(builder.Compile(), destination, token));
        }
예제 #9
0
        public Task <IReadOnlyList <T> > Query <T>(string sql, params object[] parameters) where T : class
        {
            var handler = new UserSuppliedQueryHandler <T>(_parent, sql, parameters);

            if (!handler.SqlContainsCustomSelect)
            {
                _documentTypes.Add(typeof(T));
            }

            return(AddItem(handler));
        }
예제 #10
0
        public async Task <IReadOnlyList <T> > QueryAsync <T>(string sql, CancellationToken token, params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(this, sql, parameters);

            if (!handler.SqlContainsCustomSelect)
            {
                await Database.EnsureStorageExistsAsync(typeof(T), token).ConfigureAwait(false);
            }

            var provider = new MartenLinqQueryProvider(this);

            return(await provider.ExecuteHandlerAsync(handler, token).ConfigureAwait(false));
        }
예제 #11
0
        public IReadOnlyList <T> Query <T>(string sql, params object[] parameters)
        {
            assertNotDisposed();

            var handler = new UserSuppliedQueryHandler <T>(this, sql, parameters);

            if (!handler.SqlContainsCustomSelect)
            {
                Database.EnsureStorageExists(typeof(T));
            }

            var provider = new MartenLinqQueryProvider(this);

            return(provider.ExecuteHandler(handler));
        }