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

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

  • 相关阅读:
    【已解决】对发现无理数过程的逻辑严谨性的疑惑
    微积分奇观之计算曲线的平均高度
    闲鱼二维码 另外那个号
    联通KD-YUN-811G光猫管理员密码
    人工智能结课作业-BP神经网络/卷积神经网络手写体识别
    人工智能结课作业-遗传算法/粒子群寻优/蚁群算法解决TSP问题
    人工智能结课作业-DFS/BFS/Astar解决八数码问题
    AMD 2020显卡驱动没有切换独立显卡选项
    linux创建文件夹快捷方式
    Ubuntu 18.04 设置开机启动脚本
  • 原文地址:https://www.cnblogs.com/xiaose1205/p/2995542.html
Copyright © 2011-2022 走看看