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。
posted on 2011-11-03 08:40  zjxing  阅读(832)  评论(0编辑  收藏  举报