 | ISphinxQLExecutorQueryT Method (String, Object) |
Executes the given SphinxQL query and returns a list of results of the given type.
Namespace:
SphinxConnector.FluentApi
Assembly:
SphinxConnector (in SphinxConnector.dll) Version: 5.4.1
SyntaxIList<T> Query<T>(
string query,
Object parameters = null
)
Function Query(Of T) (
query As String,
Optional parameters As Object = Nothing
) As IList(Of T)
Parameters
- query
- Type: SystemString
The query to execute. - parameters (Optional)
- Type: SystemObject
Optional parameters for the query.
Type Parameters
- T
- The result type.
Return Value
Type:
IListTA list of data of the given type. If the type is a built-in type like int, string, etc. only the data from the first column is returned,
otherwise an instance is created per row, and a case insensitive, direct mapping between column-name and member-name is assumed.
Exceptions
Examples
The following example shows how to execute a query with parameters:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();
var parameters = new { query = "a product", categories = new[] { 23, 42 } };
var results = sphinxQLExecutor.Query<Product>("SELECT * FROM products WHERE MATCH(@query) AND categories IN @categories", parameters);
}
The next example shows a query with a built-in type as a result type:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();
var parameters = new { descriptions = new[] {"a description", "another description"}, query = "a product" };
var snippets = sphinxQLExecutor.Query<string>("CALL SNIPPETS(@descriptions, 'products', @query)", parameters);
}
You can also project your results into a dynamic object:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();
var parameters = new { query = "a product", categories = new[] { 23, 42 } };
var results = sphinxQLExecutor.Query<dynamic>("SELECT * FROM products WHERE MATCH(@query) AND categories IN @categories", parameters);
}
See Also