欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RookeyFrame模块初始化

程序员文章站 2022-07-11 07:59:55
上一篇讲了下线上创建模块,这一次讲下线下创建的模块如何初始化,实体类的创建可参考Demo中的客户主数据模块 首先讲下model类创建中的约定: 1.所有数据模型继承BaseEntity 2.需要绑定枚举的字段定义,数据库字段定义必须是int型,枚举字段为数据库字段+OfEnum,并且枚举字段上必须加 ......

上一篇讲了下线上创建模块,这一次讲下线下创建的模块如何初始化,实体类的创建可参考demo中的客户主数据模块

首先讲下model类创建中的约定:

1.所有数据模型继承baseentity

2.需要绑定枚举的字段定义,数据库字段定义必须是int型,枚举字段为数据库字段+ofenum,并且枚举字段上必须加上[ignore]属性,这样customerstatus 字段 设置下拉框时会自动绑定枚举,枚举的定义参考demo中的customerstatusenum

如下所示:

        public int customerstatus { get; set; }

 

        [ignore]

        public customerstatusenum customerstatusofenum

        {

            get

            {

                return (customerstatusenum)enum.parse(typeof(customerstatusenum), customerstatus.tostring());

            }

            set { customerstatus = (int)value; }

        }

3.外键字段定义,类型:guid?,字段名:外键模块类名+id,如果是多选外键则以other开头,多选外键字段定义见rookey.frame.model下sys_role的otherparentroles字段

4.外键字段的显示字段名称为外键模块类名+name,如果是多选外键则是外键字段+name

5.所有树状实体类的父字段定义为parentid,外键name字段为parentname,外键模块指向自己

6.需要绑定数据字典的字段定义为string型

基于以上约定创建完model后,并设置model类的moduleconfig和各字段的fieldconfig,这样以后就可以初始化该model了,

初始化有三种情形:

1.全部重建,操作方式:删除数据库,配置web.config中的needinit为true,执行ctrl+f5(执行不调试),如果之前已经登录,退出到登录页面,只有在登录页面才会执行初始化的动作,如果创建数据库失败(有些版本可能有问题),可以自己先把数据库建好,再执行初始化的动作,就会初始化各数据表和模块相关数据

2.初始化单个或多个model,操作方式:配置web.config中的needinit为false,配置needrepairtable为true,配置repairtables为要初始化的model类名,多个以逗号分隔,执行ctrl+f5(执行不调试),如果之前已经登录,退出到登录页面

RookeyFrame模块初始化

3.针对已经初始化过了的model增加了字段,操作方式:在demo解决方案的rookey.bussys.operate工程中的initoperate类的app_start方法中做初始化字段操作

 RookeyFrame模块初始化

 初始化成功后将该初始化字段的代码注释,以免每次启动都执行该代码

ok,今天model初始化的操作就讲完了,有什么问题可以群里问我

最后附上demo地址:

https://gitee.com/rookey/rookey.framedemo