HelloData之:数据库model的生成。

在源码中提供了doc文件夹,里面包含了EntityBulider.tt,这个是用于生成SQLServer的model层。以此为例

在对应的model层中copy这个文件进去,后期会加入到vs插件形式。根据自己的需要修改当前字符串里面的内容即数据库连接字符串,然后再按Ctrl+S保存执行即可生成对应数据库的对象层。HelloData之:数据库model的生成。_第1张图片

生成后的样式如下:

生成的model都会继承了BaseEntity,里面包含了当前操作为表对象 public TableTyleEnum TableType = TableTyleEnum.Table;内部会生成当前继承对象的主键值,表名,错误信息,还有ToJsonString().生成当前对象的json格式。

 

    /// <summary>
    ///    
    /// </summary>
    [Serializable]
    public partial class profit_user: BaseEntity
    {
      
        /// <summary>
        ///    ID
        /// </summary>
        [Column(IsKeyProperty = true,AutoIncrement=true)]
        public int id { get; set; }    
        public  profit_user()
        {
///
base.SetIni(this,"profit_user","id"); } /// <summary> /// 用户名 /// </summary> public string name { get; set; } /// <summary> /// 密码 /// </summary> public string password { get; set; } /// <summary> /// 身份.1:超级管理员,2:财务人员 /// </summary> public int? identity { get; set; } //Columns类主要用于代码动态创建时的书写,因为编译器会自动加提示,所以减少了书写的错误几率。 public static class Columns { public const string id="id"; public const string name="name"; public const string password="password"; public const string identity="identity"; } }

 HelloData之:数据库model的生成。_第2张图片

如果数据库的表对象在实际操作中不够用,或者需要扩展些对象属性或者方法,只需在同命名空间下加入

 
//用partial 部分类操作,保证了T4生成的model不会破坏每次的生成结果。

public partial class profit_user
 { [Column(NoSqlProperty = true)]//表示非数据库字段操作,hellodata操作时会自动过滤当前属性 public string RoleName { get { switch (this.identity) { case 1: return "超级管理员"; case 2: return "财务人员"; case 3: return "商务部管理员"; } return ""; } } }

 model层的操作基本上就可以了。

附:

ColumnAttribute的代码,可以方便大家的操作。
 public class ColumnAttribute : System.Attribute
    {


        /// <summary>
        /// 是否自增
        /// </summary>
        public bool AutoIncrement { get; set; }

        /// <summary>
        /// 是否虚拟属性
        /// </summary>
        public bool NoSqlProperty { get; set; }

        /// <summary>
        /// 是否为主键
        /// </summary>
        public bool IsKeyProperty { get; set; }

        public ColumnAttribute()
        {
            AutoIncrement = false;
            IsKeyProperty = false;
            NoSqlProperty = false;
        }
    }

 

下一段是讲解逻辑层的操作。

 

你可能感兴趣的:(Model)