1. 程式人生 > >OsharpNS輕量級.net core快速開發框架簡明入門教程-代碼生成器的使用

OsharpNS輕量級.net core快速開發框架簡明入門教程-代碼生成器的使用

lar 生成器 管理 註釋 html fir clas 開始 contex

OsharpNS輕量級.net core快速開發框架簡明入門教程

教程目錄

  1. 從零開始啟動Osharp

    1.1. 使用OsharpNS項目模板創建項目

    1.2. 配置數據庫連接串並啟動項目

    1.3. OsharpNS.Swagger使用實例(登錄和授權)

    1.4. Angular6的前端項目啟動

  2. Osharp代碼生成器的使用

    2.1 生成器的使用

    2.2 生成代碼詳解(如何自己實現業務功能)

  3. Osharp部分模塊使用

    3.1 Osharp.Redis使用

    3.2 Osharp.Hangfire使用

    3.3 Osharp.Permissions使用

  4. Osharp深度學習和使用

    4.1 切換數據庫(從SqlServer改為MySql)

    4.2 多上下文配置(多個數據庫的使用)

    4.3. 自定義模塊的定義(Senparc.Weixin的使用)

    4.4. 繼續學習中....

Osharp代碼生成器的使用

目錄

  1. 下載並安裝生成器插件

  2. 配置項目字段信息

  3. 多對一關系的配置

  4. 代碼生成並查看效果

  5. 示例代碼配置文件下載

下載並安裝生成器插件

  1. 生成器在線下載地址:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp

  2. 也可以通過VS2017菜單欄工具-擴展和更新,檢索Osharp進行插件的安裝

技術分享圖片

技術分享圖片

配置項目字段信息

  1. 通過菜單運行Osharp代碼生成器,啟動之後直接全屏

技術分享圖片

  1. 生成器使用流程

    技術分享圖片

    從生成器界面上可以看到,生成器包括項目信息項目模塊列表模塊實體列表外鍵配置實體屬性列表

    配置流程:

    1. 配置項目信息:對項目整體信息進行配置

      特別註意:在配置項目信息時,註意對命名空間前綴的配置,以下圖解決方案為例,命名空間前綴就應該填寫CanDoo.Test,否則生成的時候會提示識別Osharp項目失敗,影響生成

      技術分享圖片

    2. 配置項目模塊:一個系統往往有多個模塊組成,本示例中配置兩個模塊

      代碼名稱:生成後對應模塊的命名空間和文件夾

      顯示名稱:模塊的中文含義,會體現在功能模塊的名字上

    3. 配置模塊實體:通過點擊對應的項目模塊進入模塊的實體配置

      代碼名稱:實體名稱

      顯示名稱:實體的中文名字

      主鍵類型:表的主鍵類型,一般是int吧,根據實際選擇

      增:控制此實體是否生成新增的API,接口,實現

      改:控制此實體是否生成編輯的API,接口,實現

      刪:控制此實體是否生成刪除的API,接口,實現

      數據權限:沒折騰,不知道怎麽用

      鎖定:生成IsLocked字段,具體的實現得自己實現

      軟刪除:生成DeletedTime字段,用於標識刪除時間

      創建時間:生成創建時間

      創建審計:生成創建時間,創建人Id字段 (包含前面的創建時間)

      更新審計:生成更新時間,更新人Id字段

      外鍵 按鈕:點擊進入外鍵配置

    4. 配置實體屬性:

      代碼名稱:實體的屬性

      顯示名稱:實體的註釋

      屬性類型全名:實體的數據類型,特別註意:如果是實體集合,直接使用ICollection<>即可,如果是關聯特定實體,比如關聯User,需要填寫User

      只讀:這個應該是生成界面時使用的屬性

      排序:這個應該是生成界面時使用的屬性

      編輯:這個應該是生成界面時使用的屬性

      過濾:這個應該是生成界面時使用的屬性

      必填:生成實體的時候會增加[IsRequired]屬性

      最小長度:這個應該是生成界面時使用的屬性

      最大長度:這個應該是生成界面時使用的屬性

      最小值:這個應該是生成界面時使用的屬性

      最大值:這個應該是生成界面時使用的屬性

      可空類型:對應int?,勾選了,數據類型會加"?"

      外鍵:勾選了,說明當前屬性是某個實體的外鍵

      導航:勾選了,說明當前屬性是某個實體的導航屬性

      關聯實體:選擇當前字段關聯的實體,同一套“外鍵+導航”要選擇相同的關聯實體

      輸入DTO:勾選了,此屬性會在實體的InputDto中生成對應屬性

      輸出DTO:勾選了,此屬性會在實體的OutputDto中生成對應屬性

      默認值:控制默認值

    5. 配置外鍵:

      己方導航屬性:配置實體屬性時,勾選了導航的屬性會在這裏顯示供選擇

      己方外鍵屬性:配置實體屬性時,勾選了外鍵的屬性會在這裏顯示供選擇

      對方實體: 根據實際選擇就行

      對方導航屬性:這裏的具體設置看實例吧

      外鍵關系:有一對多 多對一等選項 一般就用多對一和一對一就行,在外鍵配置部分詳細說明

      必須:是否必須的

      刪除行為:有多個選項,根據實際選擇,建議使用Restrict

    6. 保存配置:配置過程中,順手就去點一下,免得插件崩潰導致你奔潰

    7. 生成代碼:所有配置完成後,點一下保存配置,然後再生成代碼

多對一關系的配置

在本教程中,我們使用文章分類~文章~作者這3者來說明多對一關系的配置

從文章的角度出發,文章和文章分類是多對一,文章和用戶也是多對一,文章分類和文章是雙方都有對方的導航,文章和用戶的導航只存在於文章中

文章分類:包含文章集合的導航

文章:包含文章分類和用戶的導航

用戶:不包含文章的導航

  1. 配置文章分類實體屬性

    配置Articles屬性,屬性類型全名為ICollection<>,因為這個是導航屬性,所以勾選導航,關聯實體中配置為關聯的實體CanDoo.Test.CMS.Entities.Article

    技術分享圖片

  2. 配置文章實體屬性

    配置文章分類關聯:

    配置ArticleCategoryId屬性,屬性類型全名為System.Int32,因為這個是外鍵,所以勾選外鍵,關聯實體中配置為關聯的實體CanDoo.Test.CMS.Entities.ArticleCategory

    配置ArticleCategory屬性,屬性類型全名為ArticleCategory,因為這個是導航屬性,所以勾選導航,關聯實體中配置為關聯的實體CanDoo.Test.CMS.Entities.ArticleCategory

    配置用戶關聯:

    配置UserId屬性,屬性類型全名為System.Int32,因為這個是外鍵,所以勾選外鍵,關聯實體中配置為關聯的實體CanDoo.Test.Identity.Entities.User

    配置User屬性,屬性類型全名為User,因為這個是導航屬性,所以勾選導航,關聯實體中配置為關聯的實體CanDoo.Test.Identity.Entities.User

    技術分享圖片

  3. 配置外鍵

    配置文章和文章分類的外鍵:己方導航屬性AritcleCategory,己方外鍵屬性AritcleCategoryId,對方實體CanDoo.Test.CMS.Entities.ArticleCategory,對方導航屬性Articles,外鍵關系ManyToOne,必須就根據實際需要填寫了,刪除關系選擇Restrict,配置此屬性,分類下如果存在文章,刪除時會因為關聯禁止刪除

    配置文章和用戶的外鍵:己方導航屬性User,己方外鍵屬性UserId,對方實體CanDoo.Test.Identity.Entities.User,對方導航屬性不要填寫,這裏能和填寫的做一下對比,外鍵關系ManyToOne,必須就根據實際需要填寫了,刪除關系選擇Restrict,配置此屬性,分類下如果存在文章,刪除時會因為關聯禁止刪除

    技術分享圖片

代碼生成並查看效果

  1. 當配置完成之後,點一下“保存配置”

  2. 點一下“生成代碼”按鈕,系統會詢問是否為Osharp解決方案,點"是"就行了

    技術分享圖片

  3. 代碼生成之後,已經將代碼添加到項目中,可以執行編譯,如果有錯,主要就是配置問題或者是有些類庫沒有引用,我在生成之後發現User實體對應的類庫沒有引用,引用之後能正常編譯(當然前端中也有代碼生成,因為我不用這個前端,所以就沒仔細去研究了)

    技術分享圖片

    技術分享圖片

  4. 程序包管理控制臺中運行add-migration -Context DefaultDbcontext initCMS,生成數據庫遷移代碼(如果沒有多上下文,執行add-migration initCMS即可)

  5. 程序包管理控制臺中運行update-database -Context DefaultDbcontext,執行數據庫遷移(如果沒有多上下文,執行update-database即可)

    技術分享圖片

  6. 運行項目,查看Swagger,會發現對應的5張表所有的增刪改查API都已經生成,並能正常使用

    技術分享圖片

OsharpNS輕量級.net core快速開發框架簡明入門教程-代碼生成器的使用