Skip to main content
All docs
V25.1
  • .NET Framework 4.6.2+

    XAF0028: Use the corresponding XPO attribute

    Severity: Warning

    Do not decorate members of an XPO class with attributes from the DevExpress.ExpressApp.DC namespace. These attributes are intended to be used with non-persistent classes only. Use corresponding XPO attributes instead.

    Consider the following popular replacements for XAF ORM-agnostic attributes in XPO classes:

    Attribute Replacement
    DevExpress.ExpressApp.Data.KeyAttribute DevExpress.Xpo.KeyAttribute
    DevExpress.ExpressApp.DC.FieldSizeAttribute DevExpress.Xpo.SizeAttribute
    DevExpress.ExpressApp.DC.AggregatedAttribute DevExpress.Xpo.AggregatedAttribute
    DevExpress.ExpressApp.DC.CalculatedAttribute DevExpress.Xpo.PersistentAliasAttribute

    Examples

    Invalid Code

    using DevExpress.Xpo;
    
    namespace TestApplication.Module.BusinessObjects {
        public class TestClass : XPObject {
            [DevExpress.ExpressApp.DC.FieldSize(1000)]
            public string Description { get; set; }
        }
    }
    

    Valid Code

    using DevExpress.Xpo;
    
    namespace TestApplication.Module.BusinessObjects {
        public class TestClass : XPObject {
            public TestClass(Session session) : base(session) { }
            [Size(1000)]
            public string Description { get; set; }
        }
    }