SQLite-实体特性
实体特性
实体特性位于命名空间 Chloe.Annotations(v2.x版本为Chloe.Entity) 下。
TableAttribute:
Name:映射的表名。
实体对应的表默认是实体类名,如实体类型名与表名不一致,可通过该特性指定映射的表名。
public class TableAttribute : Attribute
{
public TableAttribute();
public TableAttribute(string name);
public string Name { get; set; }
public string Schema { get; set; }
}
ColumnAttribute:
Name:映射的列名,如不指定,则默认使用属性名。
IsPrimaryKey:指示列是否为主键,默认为 false。
当一个实体没显示指定主键的时候,Chloe 默认选择名为 Id 的属性(如果存在)作为主键列,与此同时,如果该实体也没有显式指定任何自增列并且 Id 属性为 Int16、Int32 或者 Int64 类型,则也会默认其为自增列。如若不是自增列,可使用特性 NonAutoIncrementAttribute 标记。
public class ColumnAttribute : Attribute
{
public ColumnAttribute();
public ColumnAttribute(string name);
public string Name { get; set; }
public bool IsPrimaryKey { get; set; }
public DbType DbType { get; set; }
public int Size { get; set; }
public int Scale { get; set; }
public int Precision { get; set; }
}
AutoIncrementAttribute:
标记属性为自增列。一个实体不能指定多个自增列,否则会报异常提示。
public class AutoIncrementAttribute : Attribute
{
public AutoIncrementAttribute();
}
NonAutoIncrementAttribute:
标记属性为非自增列。
public class NonAutoIncrementAttribute : Attribute
{
public NonAutoIncrementAttribute();
}
NotMappedAttribute:
指示属性不映射任何列。
public class NotMappedAttribute : Attribute
{
public NotMappedAttribute();
}
Fluent Mapping
Chloe.ORM 亦支持 Fluent Mapping,具体参考:
http://www.52chloe.com/Wiki/Document/1012941695404347392