Session.GetObjectsFromQueryAsync<T>(List<XPMemberInfo>, String, String[], QueryParameterCollection, CancellationToken) Method
Asynchronously executes a SQL query and returns its result set as a collection of non-persistent objects.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v24.2.dll
NuGet Package: DevExpress.Xpo
#Declaration
public Task<ICollection<T>> GetObjectsFromQueryAsync<T>(
List<XPMemberInfo> members,
string sql,
string[] parameterNames,
QueryParameterCollection parameters,
CancellationToken cancellationToken = default(CancellationToken)
)
#Parameters
Name | Type | Description |
---|---|---|
members | List<XPMember |
Specifies object members mapped to columns in the result set. The order of list elements should correspond to the order of result set columns. |
sql | String | Specifies an SQL statement. |
parameter |
String[] | Specifies parameter names. |
parameters | Query |
Specifies query parameter values. |
#Optional Parameters
Name | Type | Default | Description |
---|---|---|---|
cancellation |
Cancellation |
null | A Cancellation |
#Type Parameters
Name | Description |
---|---|
T | The type of objects returned by the method. A class that implements this type sould be decorated with Non |
#Returns
Type | Description |
---|---|
Task<ICollection<T>> | A Task |
#Remarks
Use QueryParameterCollection to pass strongly-typed parameters. See examples here: Always Encrypted (SQL Server only).
string sql = "select (FirstName + ' ' + LastName) as Name, City, Country from Employees where City = @city";
XPClassInfo classInfo = session.GetClassInfo<EmployeeModel>();
List<XPMemberInfo> members = new List<XPMemberInfo>() {
classInfo.GetMember(nameof(EmployeeModel.Name)),
classInfo.GetMember(nameof(EmployeeModel.City)),
classInfo.GetMember(nameof(EmployeeModel.Country))
};
QueryParameterCollection parameters = new QueryParameterCollection() {
new ParameterValue() { DBTypeName = "nvarchar(15)", Value = "London" }
};
ICollection<EmployeeModel> queryResultData = await session.GetObjectsFromQueryAsync<EmployeeModel>(members, sql, new[] { "city" }, parameters);
This method does the following:
- Executes the specified SQL query and obtains the query result.
- Creates objects of the specified type and populates their properties with the resulting set’s data. The members parameter specifies the mapping between columns in the resulting set and object properties. Note that the GetObjectsFromQuery<T> method’s generic type parameter should specify a non-persistent class decorated with a NonPersistentAttribute.
- Populates a collection with these objects.
Note
The Get
- A property that is not defined within the T type.
- A struct type member.
- A reference to a class with a struct type member.
- A collection used in object relations.
To learn more about executing SQL statements in XPO, refer to Direct SQL Queries.
Note
The Get