xaf-xpo-models
Installation
SKILL.md
XAF: XPO Business Object Models
Base Classes
| Class | Key Type | OID Field | Deferred Delete | Optimistic Lock | Use Case |
|---|---|---|---|---|---|
XPObject |
int (auto) |
OID (int) |
Yes (GCRecord) | Yes (auto) | Simple integer PK |
XPCustomObject |
Custom ([Key]) |
User-defined | Yes (GCRecord) | Yes (auto) | Custom PK type (Guid, string, composite) |
XPBaseObject |
Custom ([Key]) |
User-defined | No (immediate) | Yes (auto) | Physical deletion required |
XPLiteObject |
Custom ([Key]) |
User-defined | No | No | Legacy/views/joins, no concurrency |
BaseObject (BCL) |
Guid (Oid) |
Oid (Guid) |
Yes | Yes | Recommended for new XAF projects |
Inheritance chain: XPObject → XPCustomObject → XPBaseObject → PersistentBase
Deferred deletion: XPO sets GCRecord to a non-null value instead of deleting the row.
XAF recommendation: Use BaseObject (from DevExpress.Persistent.BaseImpl) for new XPO entities.