XPObject Class
Implements the IXPObject and provides an autogenerated integer key mapped to the ‘OID’ field.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v21.1.dll
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
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the XPObject class.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.