Skip to main content
All docs
V25.1
  • .NET 8.0+
    • The page you are viewing does not exist in the .NET Framework 4.6.2+ platform documentation. This link will take you to the parent topic of the current section.

    BaseObject Class

    A base class for EF Core persistent classes.

    Namespace: DevExpress.Persistent.BaseImpl.EF

    Assembly: DevExpress.Persistent.BaseImpl.EFCore.v25.1.dll

    NuGet Package: DevExpress.Persistent.BaseImpl.EFCore

    Declaration

    public abstract class BaseObject :
        IXafEntityObject,
        IObjectSpaceLink,
        IDeferredDeletion,
        IEFCoreBaseObject,
        IOptimisticLock

    Remarks

    The key property of this class has the Guid type. Implements the IObjectSpaceLink and IXafEntityObject interfaces.

    using DevExpress.Data.Filtering;
    using DevExpress.Persistent.Base;
    using DevExpress.Persistent.BaseImpl.EF;
    
    namespace YourSolutionName.Module.BusinessObjects;
    
    [DefaultClassOptions]
    public class MyPersistentClass : BaseObject {
        public virtual string Name { get; set; }
        public virtual bool IsNew { get; set; }
        public virtual ApplicationUser CreatedBy { get; set; }
        public virtual ApplicationUser LastModifiedBy { get; set; }
        ApplicationUser GetCurrentUser() {
            return ObjectSpace.FindObject<ApplicationUser>(CriteriaOperator.Parse("ID=CurrentUserId()"));
        }
        public override void OnCreated() {
            CreatedBy = GetCurrentUser();
            IsNew = true;
        }
        public override void OnLoaded() {
            IsNew = false;
        }
        public override void OnSaving() {
            if(ObjectSpace != null) {
                LastModifiedBy = GetCurrentUser();
            }
            IsNew = false;
        }
    }
    
    See Also