You must create a property that does not have a "setter" method in your class (and if you code in VB.NET, put the ReadOnly keyword in the property definition). By default, this property is volatile. In order to be able to use this property in filter criteria, search for it or include it in XPCollection.DisplayableProperties, the property must be marked with the PersistentAlias attribute.
The actual value can be stored in a private field. Private fields are also non-persistent XPObject members. You must add the Persistent attribute to the field with the name of the read-only property. This name will be used for the column name in the database table corresponding to your object.
, , . , .