XPObject Class
Implements the IXPObject and provides an autogenerated integer key mapped to the ‘OID’ field.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v24.1.dll
NuGet Packages: DevExpress.Win.PivotGrid, DevExpress.Win.TreeMap, DevExpress.Xpo
NuGet Package: DevExpress.Xpo
Declaration
Remarks
Persistent objects are the objects that can be saved to and restored from a data store. Persistent objects represent the records in a table and encapsulate all the required relationships. The field values are represented as properties. Therefore a data table is merely represented by a collection of persistent objects. With eXpress Persistent Objects you will never have to deal with table mapping - all you need to do is to define persistent object classes, and XPO will automatically generate a database for them.
When creating a persistent object by deriving from the XPBaseObject, XPCustomObject or XPObject class, an OptimisticLockingAttribute is automatically applied to it. This attribute specifies whether a session can lock a persistent object’s state (allows optimistic locking to be enabled).
For more information, Optimistic Concurrency.
The following code demonstrates how to declare a persistent object.
using DevExpress.Xpo;
// Other base classes: https://docs.devexpress.com/eXpressAppFramework/113146/concepts/business-model-design/business-model-design-with-xpo/base-persistent-classes
public class MyClass : XPObject {
// XPObject has a built-in Integer key and you can't add a custom key
public MyClass(Session session) : base(session) { }
string fMyProperty;
public string MyProperty {
get { return fMyProperty; }
set { SetPropertyValue(nameof(fMyProperty), ref fMyProperty, value); }
}
}
Concepts
- XPO Classes Comparison
- Create a Persistent Object
- Saving Persistent Objects
- Deleting Persistent Objects
- Validating Objects
- Basics of Creating Persistent Objects for Existing Data Tables
- Generating Persistent Objects for Existing Data Tables
Task-Based Help
- How to: Create an Aggregated Object
- How to: Handle Persistent Object Initialization
- How to: Prevent Changes in a Persistent Object from being Automatically Committed