假设我有一个业务对象,它有一些应该属性 是只读的。例如:
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填充的公共设置器的情况下编写属性?
答案 0 :(得分:4)
MapField属性上有一个存储属性,可能会有帮助
public class Class1
{
int _int32 = 0;
[MapField(Storage = "_int32")]
public int Int32
{
get { return _int32; }
}
}
答案 1 :(得分:0)
我认为你不能这样做,但如果我理解你就不需要它。如果从存储过程返回OrderTotal,那么如果你原样保留它就好了。除非Order类表示数据库中的实际Order表,否则如果您不小心更新OrderTotal,则不会有任何问题。