NonPersistentObjectSpace Class
An Object Space used to manage non-persistent objects.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v24.2.dll
NuGet Package: DevExpress.ExpressApp
#Declaration
public class NonPersistentObjectSpace :
CompositeObjectSpace
#Remarks
To enable the use of NonPersistentObjectSpace, the following code should be added to the overridden CreateDefaultObjectSpaceProvider method located in the WinApplication.cs (WinApplication.vb) and/or WebApplication.cs (WebApplication.vb) file (in addition to the existing XPObjectSpaceProvider or EFObjectSpaceProvider).
protected override void CreateDefaultObjectSpaceProvider(CreateCustomObjectSpaceProviderEventArgs args) {
// ...
args.ObjectSpaceProviders.Add(new NonPersistentObjectSpaceProvider(TypesInfo, null));
}
Currently, this code is added automatically by the Solution Wizard, but it may be missing if you have created your project using an older version of XAF.
Note
XAF uses the first registered Object Space Provider for the following purposes:
- To get Xaf
Application. and XafObject Space Provider Application. property values.Connection String - To pass this Provider as the Custom
Check ObjectCompatibility Event Args Space argument.Provider - To update an application.
Ensure that Non
Note that in applications with the Application Builder, you need to use the Application Builder’s ObjectXaf
method or Xaf
event to register Object Space Providers. Refer to the following help topic for more information on how to do this: Integrate Application Builders into Existing Applications.
We strongly recommend this because the use of the Xaf
method and Xaf
event conflicts with IObject
This technique also improves performance of your application because the application instance is not created in this case.
To supply non-persistent objects for NonPersistentObjectSpace, use the NonPersistentObjectSpace.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 NonPersistentObjectSpace.GetObject method, use the NonPersistentObjectSpace.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.