XAF0023: Do not implement IObjectSpaceLink in the XPO classes
Severity: Warning
Do not implement the IObjectSpaceLink interface in an XPO class. Instead, use the Session
property to query or modify data inside a persistent class. Use IObjectSpace
only in XAF Controllers.
Examples
Invalid Code
using DevExpress.Xpo;
namespace TestApplication.Module.BusinessObjects {
// Do not implement IObjectSpaceLink in the XPO classes
public class BaseObject1 : BaseObject, IObjectSpaceLink { // Warning
public BaseObject1(Session session) : base(session) {}
public IObjectSpace ObjectSpace { get; set; }
public bool IsDirty {
get {
// Use ObjectSpace only in XAF Controllers
return ObjectSpace.IsObjectToSave(this) || ObjectSpace.IsNewObject(this);
}
}
}
}
Valid Code
using DevExpress.Xpo;
namespace TestApplication.Module.BusinessObjects {
public class BaseObject1 : BaseObject {
public BaseObject1(Session session) : base(session) {}
public bool IsDirty {
get {
// This code meets the requirements
return Session.IsObjectToSave(this) || Session.IsNewObject(this);
}
}
}
}