All docs
V21.1
21.2 (EAP/Beta)
21.1
20.2
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.CreateObjectTypeRecordsAsync(CancellationToken, XPClassInfo[]) Method

Asynchronously stores valid persistent types for the specified persistent class metadata information.

Namespace: DevExpress.Xpo

Assembly: DevExpress.Xpo.v21.1.dll

Declaration

public Task CreateObjectTypeRecordsAsync(
    CancellationToken cancellationToken,
    params XPClassInfo[] types
)

Parameters

Name Type Description
cancellationToken CancellationToken

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

types XPClassInfo[]

An array of the XPClassInfo objects for which the persistent types will be stored in the metadata information.

Returns

Type Description
Task

A Task that stores valid persistent types for the specified persistent class metadata information.

Remarks

For thread-safe data access layers (see ThreadSafeDataLayer) to function correctly, it’s necessary to provide complete metadata information on the persistent objects in a data store before performing any operations with persistent objects. Call the CreateObjectTypeRecordsAsync method and pass persistent class metadata information as the types parameter to store valid persistent types for the corresponding persistent objects. This creates all the necessary records within a special table called XPObjectType which is used to support object polymorphism.

using System.Threading;
using System.Threading.Tasks;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
using DevExpress.Xpo.Metadata;
// ...
public async Task CreateDatabase(string connectionString, params XPClassInfo[] persistentClasses) {
    using(IDataLayer dal = XpoDefault.GetDataLayer(connectionString, AutoCreateOption.DatabaseAndSchema)) {
        UnitOfWork uow = new UnitOfWork(dal);
        await uow.UpdateSchemaAsync(CancellationToken.None, persistentClasses);
        await uow.CreateObjectTypeRecordsAsync(CancellationToken.None, persistentClasses);
    }
}
See Also