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

https://gitee.com/rookey/Rookey.FrameDemo

RookeyFrame模块初始化的更多相关文章

  1. nginx源码分析之模块初始化

    在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...

  2. JobTracker等相关功能模块初始化

    [Hadoop代码笔记]Hadoop作业提交之JobTracker等相关功能模块初始化 一.概要描述 本文重点描述在JobTracker一端接收作业.调度作业等几个模块的初始化工作.想过模块的介绍会在 ...

  3. nginx-push-stream模块源码学习(二)——模块初始化

    本文重点介绍push stream模块的构成,至于nginx如何启动.维护该模块不会详细阐述,以后有时间会做详细阐述. 一.模块定义 1.1.  模块配置 通用nginx模块的配置struct有三种, ...

  4. nodejs -- 主模块 ,初始化.

    一:知识点: 1-1: 模块初始化: 1-2 主模块: 二: 测试 2-1: 代码: 1) 主模块 1:   main.js var counter1 = require("./counte ...

  5. Framebuffer 驱动学习总结(二)---- Framebuffer模块初始化

    ---恢复内容开始--- Framebuffer模块初始化过程:--driver\video\fbmem.c 1.  初始化Framebuffer: FrameBuffer驱动是以模块的形式注册到系统 ...

  6. Nodejs模块初始化

    模块初始化 一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象.之后,缓存起来的导出对象被重复利用. 主模块 通过命令行参数传递给NodeJS以启动程序的模块被称为 ...

  7. Windows加载器与模块初始化

    本文是Matt Pietrek在1999年9月的MSJ杂志上发表的关于Windows加载器与模块初始化方面的文章.作者深入分析了LdrpRunInitialize璕outines例程的作用,用C语言写 ...

  8. C# 9.0新特性详解系列之三:模块初始化器

    1 背景动机 关于模块或者程序集初始化工作一直是C#的一个痛点,微软内部外部都有大量的报告反应很多客户一直被这个问题困扰,这还不算没有统计上的客户.那么解决这个问题,还有基于什么样的考虑呢? 在库加载 ...

  9. dsPIC33EP ADC模块初始化及应用实例

    //文件名 p33adc.h #ifndef _P33ADC_H_ #define _P33ADC_H_ //#include "p33adc.h" //--AD1CON1 #de ...

随机推荐

  1. Python爬取前程无忧网站上python的招聘信息

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 我姓刘却留不住你的心 PS:如有需要Python学习资料的小伙伴可以 ...

  2. layui常用的验证

    var LayVerifyExtend = { notnullNonnegativeInteger: function (value, item) { //value:表单的值.item:表单的DOM ...

  3. [转]Spring Cloud在国内中小型公司能用起来吗?

    原文地址:http://www.cnblogs.com/ityouknow/p/7508306.html 原文地址:https://www.zhihu.com/question/61403505 今天 ...

  4. Ubuntu 18.04安装 pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib

    1.目前Python版本管理工具有很多,pyenv是比较好用的一款,安装如下: 输入: git clone https://github.com/pyenv/pyenv.git ~/.pyenv ec ...

  5. lua 8 字符串

    转自:http://www.runoob.com/lua/lua-strings.html 字符串或串(String)是由数字.字母.下划线组成的一串字符. Lua 语言中字符串可以使用以下三种方式来 ...

  6. vue中的router和route有什么区别?

    我只知道前者一般用在跳转路由的时候,push一个url, 而后者则用来存储路由跳转过程中存储的各种数据. 话不多说,这篇博客讲的比较详细,可以参考一下. vue2.0中的$router 和 $rout ...

  7. go 通过select实现超时

    package main import ( "fmt" "time" ) func main() { ch := make(chan int) quit := ...

  8. Web前端开发框架大全-详述

    可以说,前端技术的发展是互联网自身发展的一个缩影! 前端技术的发展经历了web1.0时代,即网页只能展示信息,几乎没有交互可言: web2.0时代,web2.0不再是单维的,逐渐发展为双向交流,另一特 ...

  9. jQuery与IE兼容性问题处理

    jQuery虽然是兼容所有主流的浏览器,但实际应用中也会存在很多兼容性的问题.使用IE11+jquery-3.2.1.min.js遇到的问题如: 对象不支持indexOf 在低版本中,1.8写法如下: ...

  10. 公式推导【ASRCF//CVPR2019】

    Dai K, Wang D, Lu H, et al. Visual Tracking via Adaptive Spatially-Regularized Correlation Filters[C ...