Xqk.Data开发指南:如何自定义数据列
在Xqk.Data的第一个示例中,我们在实体类的属性中添加DbField特性,使得该属性能够与数据表列对应起来。下面来说说DbField属性的详细用法。
DbField特性的属性如下:
- Name(类型:string)
关联的数据列名称。如果未指定,则默认用实体类属性的小写形式。 - Length(类型:int)
关联的数据列的值的最大长度。默认值为0,表示不指定长度。length属性。 - IsAutoIncrement(类型:bool)
关联数据列是否为自增型。 - IsPrimaryKey(类型:bool)
关联数据列是否为主键。
本站的文档管理系统,数据表中经常有一个文档编号的字段,该字段的值为自增,且为主键,则该属性可以定义如下:
[DbField(Name="doc_no", IsAutoIncrement=true, IsPrimaryKey=true)]
public int No { get; set; }
如果想把文本(字符)型数据列的值的长度限制在32个,则该属性可以定义如下:
[DbField(Name="doc_key", Length=32)]
public string Key { get; set; }
关于DbField的使用有以下几个注意事项:
- 如果实体类属性的类型为string,才需要设置Length;
- 只有实体类属性为int时,才能使用IsAutoIncrement=true;
- 如果设置了IsPrimaryKey=true,且该实体类属性的类型为string时,必须设置Length属性,(这是因为MySQL不支持未指定长度的text字段作为主键);
- 不是所有的C#类型都可以使用DbField特性。目前可用的类型包括:int,long,float,double,bool,string,DateTime。