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; }
}
}