All docs
V20.1
20.2 (EAP/Beta)
20.1
19.2
The page you are viewing does not exist in version 19.2. This link will take you to the root page.
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.
.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+

Session.GetObjectsFromQueryAsync(XPClassInfo, LoadDataMemberOrderItem[], String, String[], Object[], 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.v20.1.dll

Declaration

public Task<ICollection> GetObjectsFromQueryAsync(
    XPClassInfo classInfo,
    LoadDataMemberOrderItem[] members,
    string sql,
    string[] parameterNames,
    object[] parameterValues,
    CancellationToken cancellationToken = default(CancellationToken)
)
Public Function GetObjectsFromQueryAsync(
    classInfo As XPClassInfo,
    members As LoadDataMemberOrderItem(),
    sql As String,
    parameterNames As String(),
    parameterValues As Object(),
    cancellationToken As CancellationToken = Nothing
) As Task(Of ICollection)

Parameters

Name Type Description
classInfo XPClassInfo

An XPClassInfo object which contains the metadata information on a non-persistent class corresponding to the query's result set. The class must be decorated with NonPersistentAttribute.

members LoadDataMemberOrderItem[]

An array of LoadDataMemberOrderItem objects which provide mapping information for classInfo members and the query's result set columns.

sql String

Specifies an SQL statement.

parameterNames String[]

Specifies parameter names.

parameterValues Object[]

An array of objects specifying parameters to pass to the database server along with the query.

Optional Parameters

Name Type Default Description
cancellationToken CancellationToken

null

A CancellationToken object that delivers a cancellation notice to the running operation.

Returns

Type Description
Task<ICollection>

A Task<TResult> that returns a collection of non-persistent classInfo objects instantiated with data obtained via the specified SQL query.

Remarks

string sql = "select (FirstName + ' ' + LastName) as Name, City, Country from Employees";
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))
};
ICollection queryResultData = await session.GetObjectsFromQueryAsync(classInfo, members, sql);

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 GetObjectsFromQueryAsync method throws an exception if the members array includes any of the following classInfo members:

  • A property that is not defined within the classInfo 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 GetObjectsFromQueryAsync method sends statements directly, so the correct statement syntax and parameter names format depends on a particular database server.

See Also