RookeyFrame模块初始化
上一篇讲了下线上创建模块,这一次讲下线下创建的模块如何初始化,实体类的创建可参考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(执行不调试),如果之前已经登录,退出到登录页面
3.针对已经初始化过了的model增加了字段,操作方式:在demo解决方案的rookey.bussys.operate工程中的initoperate类的app_start方法中做初始化字段操作
初始化成功后将该初始化字段的代码注释,以免每次启动都执行该代码
ok,今天model初始化的操作就讲完了,有什么问题可以群里问我
最后附上demo地址:
上一篇: 是骡子是马拉出来蹓蹓
下一篇: 老板,我想涨工资。