假设我有一个业务对象,它的一些属性应该是只读的。例如:
public class Order
{
...
public DateTime OrderDate { get; set; }
...
public decimal OrderTotal { get; set; }
}还假设OrderTotal是一个由存储的proc返回的计算值,它不能由应用程序设置(而OrderDate可以设置)。通常,我会简单地编写没有公共设置器的OrderTotal:
public decimal OrderTotal { get; private set; }但是,如果我这样做了,BLToolkit将不再设置此属性的值。我也已经尝试将其编写为内部属性,并将BLToolkit定义为友元程序集(InternalsVisibleTo("BLToolkit.4, PublicKey=xyz")),但没有成功。
如果没有公共设置器,我如何编写仍然可以由BLToolkit填充的属性?
发布于 2012-03-12 19:43:36
MapField属性上有一个存储属性,这可能会有所帮助
public class Class1
{
int _int32 = 0;
[MapField(Storage = "_int32")]
public int Int32
{
get { return _int32; }
}
}发布于 2012-03-10 18:50:33
我不认为你能做到这一点,但如果我理解正确的话,你不需要它。如果OrderTotal是从存储过程返回的,那么就让它保持原样就好了。除非Order类表示数据库中的实际Order表,否则即使意外更新OrderTotal也不会有任何问题。
https://stackoverflow.com/questions/9633095
复制相似问题