Session.GetObjectsFromQueryAsync(XPClassInfo, LoadDataMemberOrderItem[], 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> GetObjectsFromQueryAsync(
XPClassInfo classInfo,
LoadDataMemberOrderItem[] members,
string sql,
QueryParameterCollection parameters,
CancellationToken cancellationToken = default(CancellationToken)
)
#Parameters
Name | Type | Description |
---|---|---|
class |
XPClass |
An XPClass |
members | Load |
An array of Load |
sql | String | Specifies an SQL statement. |
parameters | Query |
Specifies query parameter values. |
#Optional Parameters
Name | Type | Default | Description |
---|---|---|---|
cancellation |
Cancellation |
null | A Cancellation |
#Returns
Type | Description |
---|---|
Task<ICollection> | 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 = @p0";
XPClassInfo classInfo = session.GetClassInfo<EmployeeModel>();
LoadDataMemberOrderItem[] members = new[] {
new LoadDataMemberOrderItem(0, nameof(EmployeeModel.Name)),
new LoadDataMemberOrderItem(1, nameof(EmployeeModel.City)),
new LoadDataMemberOrderItem(2, nameof(EmployeeModel.Country))
};
QueryParameterCollection parameters = new QueryParameterCollection() {
new ParameterValue() { DBTypeName = "nvarchar(15)", Value = "London" }
};
ICollection queryResultData = await session.GetObjectsFromQueryAsync(classInfo, members, sql, parameters);
The connection provider automatically generates sequential parameter names (p0, p1, p2 …). To specify custom parameter names, use the overloaded GetObjectsFromQueryAsync(XPClassInfo, LoadDataMemberOrderItem[], String, String[], QueryParameterCollection, CancellationToken) method.
This method does the following:
- Executes the specified SQL query and obtains the query result.
- Creates objects using the specified classInfo 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 classInfo should represent a non-persistent class decorated with a NonPersistentAttribute.
Note
The Get
- A property that is not defined within the class
Info object. - 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