zoukankan      html  css  js  c++  java
  • 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地址:

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

  • 相关阅读:
    DataTable、GridView、DataList导出至Word或Excel
    实现字符串转换为图片
    Sina App Engine与Google App Engine区别对比
    C/C++反序输出字符串总结
    NAND flash和NOR flash详解
    [转载]看完《python简明教程》笔记及第一个python程序
    Python写爬虫——抓取网页并解析HTML
    ACM HDU 1004 Let the Balloon Rise
    有向图的强连通分量
    ACM HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/rookey/p/10877125.html
Copyright © 2011-2022 走看看