NonPersistentObjectSpace Class
An Object Space used to manage non-persistent objects.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v25.2.dll
NuGet Package: DevExpress.ExpressApp
Declaration
Remarks
To supply non-persistent objects for NonPersistentObjectSpace, use the ObjectsGetting event that occurs when NonPersistentObjectSpace creates an object collection. You can find examples in the following topics:
- How to: Display a Non-Persistent Object’s Detail View from the Navigation
- How to: Display Non-Persistent Objects in a Report
- How to: Perform CRUD Operations with Non-Persistent Objects
To supply an object returned by the GetObject(Object) method, use the ObjectGetting event.
The New, Delete and Save Actions are available for non-persistent objects. To access all created, deleted and modified objects within NonPersistentObjectSpace, use the NonPersistentObjectSpace.ModifiedObjects property.
The IObjectSpaceLink.ObjectSpace property of non-persistent objects that support IObjectSpaceLink is initialized in these cases:
- An object is created using the IObjectSpace.CreateObject method.
- An object is accessed using the NonPersistentObjectSpace.GetObject method.
- A collection is accessed using the IObjectSpace.GetObjects or IObjectSpace.CreateCollection method.
If an object from another Object Space passed to the GetObject method implements IObjectSpaceLink, and its ObjectSpace property is null, the current NonPersistentObjectSpace assigns a link to itself in this property. Similar behavior is implemented for objects returned by the GetObjects and CreateCollection methods using the NonPersistentObjectSpace.ObjectsGetting event.
Enable the Non-Persistent Object Space in Your Application
The Template Kit automatically registers the non-persistent Object Space Provider in the application. However, for projects created with older XAF versions, you need to register it manually. Call the AddNonPersistent method in the ObjectSpaceProviders property:
builder.ObjectSpaceProviders
// ...
.AddNonPersistent();
// ...
Note
XAF uses the first registered Object Space Provider for the following purposes:
- To get XafApplication.ObjectSpaceProvider and XafApplication.ConnectionString property values.
- To pass this Provider as the CustomCheckCompatibilityEventArgs
ObjectSpaceProviderargument. - To update an application.
Ensure that NonPersistentObjectSpaceProvider is not the first registered Provider in your application.