[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, Inherited = true)]
public sealed class DeferredDeletionAttribute :
<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Interface, Inherited:=True)>
Public NotInheritable Class DeferredDeletionAttribute
Deferred deletion means that when you delete a persistent object by calling its XPBaseObject.Delete method, XPO does not physically delete the record in the underlying data store. Instead, it marks the record as deleted.
When an object with Deferred Deletion enabled is deleted, it is removed from associated collections. Associations cannot be recreated automatically when you restore a deleted object. This behavior is by design, because the Deferred Deletion feature is not intended for object restoration, but for overcoming complex foreign index constraints at the database level.