Skip to main content
.NET Framework 4.5.2+

BaseObject Class

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

Namespace: DevExpress.Persistent.BaseImpl

Assembly: DevExpress.Persistent.BaseImpl.Xpo.v22.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.

The following code snippets (auto-collected from DevExpress Examples) contain references to the BaseObject class.


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.

See Also