到目前为止,我主要是在编写表列定义映射,因此它们看起来类似于Linq2SQL样式。
eg Linq2SQL
private Nullable<int> _MyColumn;
[Column( Name = "MyColumn", Storage = "_MyColumn", DbType = "int", CanBeNull = true )]
public Nullable<int> MyColumn { get { return _MyColumn; } set { _MyColumn= value; } }BLToolkit
private Nullable<int> _MyColumn;
[MapField( "MyColumn", Storage = "_MyColumn" )]
public Nullable<int> MyColumn { get { return _MyColumn; } set { _MyColumn= value; } }我认为这并不是一个真正的问题,只是现在我不知道BLToolkit真正需要的这些属性。我需要成员字段_MyValue,还是属性存储?
BLToolkit wiki站点上的大多数示例只使用以下样式来定义表列
[MapField( "MyColumn" )]
public Nullable<int> MyColumn { get; set; }所以我的问题是。我需要在BLToolkit中使用私有设置器吗?
它是否存在性能问题?
发布于 2011-09-01 14:35:46
LINQ使用私有支持字段来允许IPropertyNotifyChanging/INotifyPropertyChanged实现和部分方法,以允许您添加自己的自定义逻辑、数据库,并允许上下文监视更新过程中的属性更改。在使用自动实现的属性时,不会得到这些信息。在运行时使用autoprops不会提高性能,因为它们只是编译器为您生成的“匿名”私有支持字段上的语法糖。
对于存储属性,在LINQ中,它用于直接设置数据库读取上的私有后台字段,以绕过属性通知事件。例如,如果您有一个拦截器来监视何时引发INotifyPropertyChanged.PropertyChanged并将您的对象标记为脏,那么如果在获取对象时使用公共属性设置程序,它将被标记为脏,但是如果您使用存储指向私有字段,则不会将其标记为脏。
所有这些都是针对LINQ的,可能适用于或不适用于BLTooklit,因为我对此并不熟悉。
https://stackoverflow.com/questions/7269537
复制相似问题