[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Collapse]eXpress Persistent Objects
 [Expand]Product Information
 [Expand]Getting Started
 [Expand]Fundamentals
 [Expand]Feature Center
 [Expand]Concepts
 [Expand]Design-Time Features
 [Expand]Examples
 [Expand]Member Tables
 [Collapse]API Reference
  [Collapse]DevExpress.Xpo
   [Expand]AggregatedAttribute Class
   [Expand]AssociationAttribute Class
    AsyncBehavior Enumeration
    AsyncCommitCallback Delegate
    AsyncSelectDataCallback Delegate
    CacheBehavior Enumeration
    CollectionBindingBehavior Enumeration
   [Expand]ColumnDbDefaultValueAttribute Class
   [Expand]ColumnDefaultValueAttribute Class
   [Expand]CommitObjectStubsResult Class
   [Expand]CustomAttribute Class
   [Expand]CustomCriteriaManager Class
   [Expand]DataViewPropertiesCollection Class
   [Expand]DataViewProperty Class
   [Expand]DataViewRecord Class
   [Expand]DbTypeAttribute Class
    DefaultMembersPersistence Enumeration
   [Expand]DefaultMembersPersistenceAttribute Class
   [Expand]DeferredDeletionAttribute Class
   [Expand]DelayedAttribute Class
   [Expand]DisplayNameAttribute Class
   [Expand]ExplicitLoadingAttribute Class
   [Expand]ExplicitUnitOfWork Class
   [Expand]FetchOnlyAttribute Class
   [Expand]GetObjectStubsByKeyQuery Class
    GuidGenerationMode Enumeration
   [Expand]HiddenAttribute Class
   [Expand]ICustomCriteriaOperatorQueryable Interface
   [Expand]ICustomFunctionOperatorQueryable Interface
   [Expand]IDataLayer Interface
   [Expand]IDataLayerAsync Interface
    IdentityMapBehavior Enumeration
   [Expand]IndexedAttribute Class
   [Expand]IndicesAttribute Class
   [Expand]IObjectLayer Interface
   [Expand]IObjectLayerAsync Interface
   [Expand]IObjectLayerEx Interface
   [Expand]IObjectLayerOnSession Interface
   [Expand]ISerializableObjectLayer Interface
   [Expand]ISerializableObjectLayerEx Interface
   [Expand]IXPModificationsStore Interface
   [Expand]IXPObject Interface
   [Expand]IXPSimpleObject Interface
   [Expand]KeyAttribute Class
   [Expand]LoadDataMemberOrderItem Structure
    LockingOption Enumeration
   [Expand]MapInheritanceAttribute Class
    MapInheritanceType Enumeration
   [Expand]MapToAttribute Class
   [Expand]MemberDesignTimeVisibilityAttribute Class
   [Expand]MergeCollisionBehaviorAttribute Class
   [Expand]NestedUnitOfWork Class
   [Expand]NoForeignKeyAttribute Class
   [Expand]NonPersistentAttribute Class
   [Expand]NullableAttribute Class
    NullableBehavior Enumeration
   [Expand]NullableBehaviorAttribute Class
   [Expand]NullValueAttribute Class
   [Expand]ObjectChangeEventArgs Class
    ObjectChangeEventHandler Delegate
    ObjectChangeReason Enumeration
   [Expand]ObjectManipulationEventArgs Class
    ObjectManipulationEventHandler Delegate
   [Expand]ObjectsByKeyQuery Class
   [Expand]ObjectsManipulationEventArgs Class
    ObjectsManipulationEventHandler Delegate
   [Expand]ObjectsQuery Class
   [Expand]ObjectStubsQuery Class
   [Expand]OptimisticLockingAttribute Class
    OptimisticLockingBehavior Enumeration
   [Expand]OptimisticLockingIgnoredAttribute Class
    OptimisticLockingReadBehavior Enumeration
   [Expand]OptimisticLockingReadBehaviorAttribute Class
    OptimisticLockingReadMergeBehavior Enumeration
   [Expand]PersistentAliasAttribute Class
   [Collapse]PersistentAttribute Class
     PersistentAttribute Members
    [Expand]PersistentAttribute Constructor
    [Expand]PersistentAttribute Properties
   [Expand]PersistentBase Class
    PersistentCriteriaEvaluationBehavior Enumeration
   [Expand]ResolveSessionEventArgs Class
    ResolveSessionEventHandler Delegate
   [Expand]SchemaInitEventArgs Class
    SchemaInitEventHandler Delegate
   [Expand]SerializableObjectLayer Class
   [Expand]SerializableObjectLayerClient Class
    ServerExceptionThrownAction Enumeration
   [Expand]ServerExceptionThrownEventArgs Class
    ServerExceptionThrownEventHandler Delegate
   [Expand]ServerViewPropertiesCollection Class
   [Expand]ServerViewProperty Class
   [Expand]Session Class
   [Expand]SessionManipulationEventArgs Class
    SessionManipulationEventHandler Delegate
   [Expand]SessionObjectLayer Class
   [Expand]SessionOperationFailEventArgs Class
    SessionOperationFailEventHandler Delegate
   [Expand]SimpleDataLayer Class
   [Expand]SimpleObjectLayer Class
   [Expand]SizeAttribute Class
   [Expand]SkipCheckForFeedsAttribute Class
    SortDirection Enumeration
   [Expand]SortingCollection Class
   [Expand]StreamAttribute Class
   [Expand]ThreadSafeDataLayer Class
   [Expand]UnitOfWork Class
   [Expand]ValueConverterAttribute Class
   [Expand]ViewPropertiesCollection Class
   [Expand]ViewProperty Class
   [Expand]ViewRecord Class
   [Expand]VisibleAttribute Class
   [Expand]XPBaseCollection Class
   [Expand]XPBaseObject Class
   [Expand]XPBindingSource Class
   [Expand]XPClassInfoStub Class
   [Expand]XPCollection Class
   [Expand]XPCollection<T> Class
   [Expand]XPCollectionChangedEventArgs Class
    XPCollectionChangedEventHandler Delegate
    XPCollectionChangedType Enumeration
   [Expand]XPCursor Class
   [Expand]XPCustomObject Class
   [Expand]XPDataObject Class
   [Expand]XPDataView Class
   [Expand]XPDelayedProperty Class
   [Expand]XPDictionaryStub Class
   [Expand]XPInstantFeedbackSource Class
   [Expand]XPInstantFeedbackView Class
   [Expand]XPLiteObject Class
   [Expand]XPObject Class
   [Expand]XPObjectSource Class
   [Expand]XPObjectSourcePropertiesCollection Class
   [Expand]XPObjectSourceProperty Class
   [Expand]XPObjectSourceRecord Class
   [Expand]XPObjectStub Class
   [Expand]XPObjectStubCollection Class
   [Expand]XPObjectType Class
   [Expand]XpoDataSource Class
   [Expand]XpoDataSourceInsertedEventArgs Class
    XpoDataSourceInsertedEventHandler Delegate
   [Expand]XpoDefault Class
   [Expand]XPPageSelector Class
   [Expand]XPQuery<T> Class
   [Expand]XPQueryBase Class
   [Expand]XPQueryExtensions Class
   [Expand]XPServerCollectionSource Class
   [Expand]XPServerModeView Class
   [Expand]XPView Class
   [Expand]XPWeakReference Class
  [Expand]DevExpress.Xpo.DB
  [Expand]DevExpress.Xpo.DB.Helpers
  [Expand]DevExpress.Xpo.Exceptions
  [Expand]DevExpress.Xpo.Helpers
  [Expand]DevExpress.Xpo.Metadata
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

PersistentAttribute Class

Indicates that a property, field or class will be stored in a persistent data store and specifies the target column or table name.

Namespace:DevExpress.Xpo
Assembly:DevExpress.Xpo.v19.1.dll

Expanded Syntax

Expanded Remarks

Generally, XPO stores only writable properties and public fields. Use the PersistentAttribute whenever you want to force persistence for non-writable or non-public fields (for instance, if you need to store a read-only property value to the database). Use the MapTo parameter to specify the column name for the property or field to persist.

This attribute can also be applied to a class to make it persistent and to map objects of this class to a specific table/view in a data store. Only a single class can be mapped to a specific table/view. Otherwise, an SameTableNameException exception will be raised.

A persistent class, that is a descendant of another persistent class, can be mapped to the table to which its ancestor is mapped using the MapInheritanceAttribute attribute.

To map a class to a table in a specific schema, prefix the table name with the schema name. For example: "MySchema.MyTable". Note that the specified schema name must already exist in the database. Also, some connection providers allow you to specify a common schema name for all classes in the ObjectsOwner field of the connection provider. This field is implemented by SQL Server, SQL Server CE, Oracle, PostreSQL, and DB2 connection providers.

It's also possible to make an object persistent by implementing the IXPSimpleObject or IXPObject interface or by deriving it from the XPBaseObject class or one of its descendants.

Expanded Example

The following example shows different functions of the PersistentAttribute. It is used for: specifying the table name to which the Person class is mapped, specifying the column name to which the FullName property and the mDefaultAddress field are mapped, and to make the private field (mDefaultAddress) persistent.

The PersistentAliasAttribute is used here to allow accessing the persistent mDefaultAddress field in criteria via the read-only DefaultAddress property's name.

Expanded Inheritance Hierarchy

System.Object
    System.Attribute
       PersistentAttribute

Expanded See Also

Is this topic helpful?​​​​​​​