上一篇讲了下线上创建模块,这一次讲下线下创建的模块如何初始化,实体类的创建可参考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地址: