Session.CreateObjectTypeRecordsAsync(CancellationToken, Type[]) Method
Asynchronously stores valid persistent types for the specified class types.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v24.2.dll
Declaration
Parameters
Name | Type | Description |
---|---|---|
cancellationToken | CancellationToken | A CancellationToken object that delivers a cancellation notice to the running operation. |
types | Type[] | An array of class types 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 class types. |
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 class types 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;
using System.Threading;
using System.Threading.Tasks;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
// ...
public async Task CreateDatabase(string connectionString, params Type[] persistentTypes) {
using(IDataLayer dal = XpoDefault.GetDataLayer(connectionString, AutoCreateOption.DatabaseAndSchema)) {
UnitOfWork uow = new UnitOfWork(dal);
await uow.UpdateSchemaAsync(CancellationToken.None, persistentTypes);
await uow.CreateObjectTypeRecordsAsync(CancellationToken.None, persistentTypes);
}
}