上一篇講了下線上創建模塊,這一次講下線下創建的模塊如何初始化,實體類的創建可參考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(執行不調試),如果之前已經登錄,退出到登錄頁面
3.針對已經初始化過了的model增加了欄位,操作方式:在Demo解決方案的Rookey.BusSys.Operate工程中的InitOperate類的App_Start方法中做初始化欄位操作
初始化成功後將該初始化欄位的代碼註釋,以免每次啟動都執行該代碼
ok,今天model初始化的操作就講完了,有什麼問題可以群里問我
最後附上demo地址:
https://gitee.com/rookey/Rookey.FrameDemo