.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+

Session.FindObjectAsync(XPClassInfo, CriteriaOperator, Boolean, CancellationToken) Method

Asynchronously searches for the first object that matches the specified criteria.

Namespace: DevExpress.Xpo

Assembly: DevExpress.Xpo.v20.1.dll


public Task<object> FindObjectAsync(
    XPClassInfo classInfo,
    CriteriaOperator criteria,
    bool selectDeleted,
    CancellationToken cancellationToken = default(CancellationToken)
Public Function FindObjectAsync(
    classInfo As XPClassInfo,
    criteria As CriteriaOperator,
    selectDeleted As Boolean,
    cancellationToken As CancellationToken = Nothing
) As Task(Of Object)


Name Type Description
classInfo XPClassInfo

An XPClassInfo object which contains the metadata information. This data specifies which class needs to be searched.

criteria CriteriaOperator

A CriteriaOperator descendant which represents the criteria the persistent object must match.

selectDeleted Boolean

true, to include persistent objects marked as deleted into the search; otherwise, false.

Optional Parameters

Name Type Default Description
cancellationToken CancellationToken


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


Type Description

A Task that returns an object. This object represents the first persistent object that matches the specified criteria. null (Nothing in Visual Basic) if no persistent object is found that matches the criteria.


The example below demonstrates how to use this method. Here, session is the Session instance.

using System.Threading;
using DevExpress.Data.Filtering;
using DevExpress.Xpo;
using DevExpress.Xpo.Metadata;
// ...
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken cancellationToken = source.Token;
XPClassInfo personClassInfo = session.GetClassInfo(typeof(Person));
Person personToUpdate = (Person)await session.FindObjectAsync(personClassInfo,
    CriteriaOperator.Parse("Name='Michael Suyama'"), true, cancellationToken);
if(personToUpdate != null) {
    personToUpdate.Birthday = new DateTime(1986, 10, 31);

Persistent objects that are marked as deleted in the database (see Deferred and Immediate Object Deletion) are can be optionally included in the search using the selectDeleted parameter.

See Also