zoukankan      html  css  js  c++  java
  • HelloData之:数据库model的生成。

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

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

    生成后的样式如下:

    生成的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"; } }

     

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

     
    //用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;
            }
        }

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

  • 相关阅读:
    基于Zabbix API文档二次开发与java接口封装
    java-基于泛型和反射机制的通用比较器实现
    获取Java接口的所有实现类
    CentOS 7 用yum安装 MySQL
    CSS3实现加载的动画效果
    在CentOS 8/7、RHEL 8/7系统上安装Node.js 14版本的方法
    解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的错误问题
    Ajax原理与图解
    博客搬家
    [系统]制作老毛桃U盘WinPE
  • 原文地址:https://www.cnblogs.com/xiaose1205/p/2995542.html
Copyright © 2011-2022 走看看