BLToolkit:公共只读属性



假设我有一个业务对象,它有一些属性为只读。例如:

public class Order
{
     ...
     public DateTime OrderDate { get; set; }
     ...
     public decimal OrderTotal { get; set; }
}

还假设OrderTotal是存储过程返回的计算值,应用程序无法设置该值(而OrderDate可以)。通常,我只需在没有公共设置器的情况下编写OrderTotal:

public decimal OrderTotal { get; private set; }

但是,如果我这样做,BLToolkit将不再设置此属性的值。我也已经尝试将其作为内部属性编写,并将BLToolkit定义为友元程序集(InternalsVisibleTo("BLToolkit.4, PublicKey=xyz"))没有成功。

如果没有仍然可以由BLToolkit填充的公共setter,我如何编写属性?

MapField属性上有一个存储属性,这可能有助于

    public class Class1
    {
        int _int32 = 0;
        [MapField(Storage = "_int32")]
        public int Int32
        {
            get { return _int32; }
        }
    }

我不认为你能做到这一点,但如果我理解正确,你就不需要它。如果OrderTotal是从存储过程返回的,那么保持原样也没关系。除非Order类代表数据库中的实际Order表,否则如果你不小心更新了OrderTotal,你不会有任何问题。

相关内容

  • 没有找到相关文章

最新更新