Gentle中的O/R映射Attributes
在Gentle中,是通过自定义特性(Attribute)来建立对象到数据的映射,这在使用上确实比较方便直观,
下面对这特性进行简单的说明, 关于特性的具体使用方法请参考.net sdk文档。
TableAttribute
在要持久化的类上声明这个特性,建立一个对象到数据表的映射关系。
Table特性有三个属性:Name用于指定数据表名称,在声明时给出;schema指定数据表的模式;CacheStrategy指定缓存策略。
TableColumnAttribute
使用这个特性可以将对象的属性映射到数据表的表上,即建立属性到数据表列的映射关系。
TableColumn特性的属性:Name用于指定列名称;NotNull是否允许为空;Size指定列长度, 其它属性请参考源文档。
TableColumn特性可以应用于属性和字段上。
PrimaryKeyAttribute
使用这个特性可以指定对象的属性为数据表的主健,这个特性必须和TableColumn特性一起使用。
PrimaryKey特性只有一个属性:AutoGenerated用于指定主健是否由数据库自动产生。
ForeignKeyAttribute
使用这个特性标记属性会引用另一个表中的数据,即建立外健关联关系, 这个特性用于处理一对多和多对多的情况。
ForeignKey特性有二个属性:ForeignTable用于指定外表的名称;ForeignColumn指定外表中关联的列。
有点奇怪的是这两个属性并不是使用对象名和属性名(这样使用应该完全没问题)?
ConcurrencyAttribute, SoftDeleteAttribute
这两个特性指定对象的属性支持并发控制的行版本数,在更新时,只有匹配行版本数才能被更新。
CustomViewAttribute
这个特性指定对象的属性被一个命名DataView所包含,一个属性可以同时被多个命名DataView所包含。
CustomView
特性的属性:ViewName用于指定DataView的名称,注意这个名称并不是DataView对象的名称,它仅在Gentle内部使用;
ColumnIndex指定列在DataView中的位置;ColumnName指定列的名称,此名称并不是数据列的名称,它是指属性在DataView
中列的名称。
其它定制特性,请自行参考Gentle文档和源码.