Session.PreFetchAsync<T>(IEnumerable<T>, String, IEnumerable, CancellationToken) Method
Asynchronously forces associated collection data loading for specified parent objects.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v24.2.dll
NuGet Package: DevExpress.Xpo
#Declaration
public Task PreFetchAsync<T>(
IEnumerable<T> objects,
string collectionInObjects,
IEnumerable collectionsContent,
CancellationToken cancellationToken
)
#Parameters
Name | Type | Description |
---|---|---|
objects | IEnumerable<T> | An IEnumerable list of parent objects. |
collection |
String | A string which is the name of the associated collection property. |
collections |
IEnumerable | An IEnumerable list of the collection’s content. If the collection |
cancellation |
Cancellation |
A Cancellation |
#Type Parameters
Name | Description |
---|---|
T | The type of elements in the list of parent objects. |
#Returns
Type | Description |
---|---|
Task | A Task that forces associated collection data loading for specified parent objects. |
#Remarks
By default, data is loaded automatically when you access a nested collection for the first time. The PreFetchAsync<T> method loads required associated collection data for a parent object at once. No additional SQL queries for this data will be performed later.
using System.Threading;
using DevExpress.Xpo;
// ...
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
CancellationToken cancellationToken = cancellationTokenSource.Token;
XPCollection<Person> people = new XPCollection<Person>(session);
XPCollection<PhoneNumber> phoneNumbers = new XPCollection<PhoneNumber>(session);
await session.PreFetchAsync<Person>(people, nameof(PhoneNumbers), phoneNumbers, cancellationToken);