Frameworks 如何定义只读持久属性

Frameworks 如何定义只读持久属性,frameworks,devexpress,Frameworks,Devexpress,根据我的应用程序的业务逻辑,持久对象的特定属性必须是只读的。它的值应该在创建对象时设置,然后再也不更改。但是,此属性也必须是持久的。如何在XPO类中定义只读持久属性?您应该创建一个类中没有“setter”方法的属性(如果您在VB.NET中编码,请将ReadOnly关键字放入属性定义中)。默认情况下,这样的属性是非持久性的。要能够在筛选条件中使用此属性、按其搜索或将其包含在XPCollection.DisplayableProperties中,必须使用PersistentAlias属性标记该属性

根据我的应用程序的业务逻辑,持久对象的特定属性必须是只读的。它的值应该在创建对象时设置,然后再也不更改。但是,此属性也必须是持久的。如何在XPO类中定义只读持久属性?

您应该创建一个类中没有“setter”方法的属性(如果您在VB.NET中编码,请将ReadOnly关键字放入属性定义中)。默认情况下,这样的属性是非持久性的。要能够在筛选条件中使用此属性、按其搜索或将其包含在XPCollection.DisplayableProperties中,必须使用PersistentAlias属性标记该属性

实值可以存储在私有字段中。私有字段也是XPObject的非持久成员。您应该将Persistent属性添加到具有只读属性名称的字段中。此名称将用于对象对应的数据库表中的列名

只读属性的值可以作为对象构造函数中的参数传递。因此,只能为新对象指定值,以后不能更改

public class Client : XPObject {
    [Persistent("ClientID")]
    private string clientID;

    [PersistentAlias("clientID")]
    public string ClientID {
        get { return clientID; }
    }

    public Client(string clientID) {
        this.clientID = clientID;
    }

    public Client(Session session) : base(session) {}
}

注意:您可以仅为绑定的可视控件(例如TextEdit)将对象的属性设置为“只读”。您只需使用ReadOnly属性装饰您的财产或公共场所

您使用哪个平台?我认为你应该读一篇关于如何提出适当问题的文章?