.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+
.NET Core 3.0+

BaseObject Class

Represents a base persistent class from which business classes can be inherited.

Namespace: DevExpress.Persistent.BaseImpl

Assembly: DevExpress.Persistent.BaseImpl.v21.1.dll


public abstract class BaseObject :


The BaseObject class is a feature-rich persistent base class. The BaseObject class is used as the base class when declaring business classes using the XPO Business Object template. The BaseObject class’s main features are:

  • A GUID-type auto-generated BaseObject.Oid primary key property;
  • Supports optimistic concurrency control;
  • Supports deferred deletion.

The following example demonstrates how to declare a persistent class:

using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;
// ...
public class Contact : BaseObject {
    // BaseObject contains an auto-generated Guid key, you cannot add a custom key
    public Contact(Session session) : base(session) { }
    string fFirstName;
    public string FirstName {
        get { return fFirstName; }
        set { SetPropertyValue(nameof(FirstName), ref fFirstName, value); }

The following help topic lists base classes that you can use in XPO-based applications: Base Persistent Classes.

Business classes are inherited from a base persistent class. The Ways to Add a Business Class topic describes how to declare a business class, and the How to: Implement a Custom Base Persistent Class help topic provides details on how to implement a custom base persistent class. The Business Classes vs Database Tables topic provides a general overview of the business class concept.


XAF manages persistent objects via Object Spaces. Refer to the BaseObjectSpace class description for more information about the Object Space concept.

See Also