日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具

發布時間:2023/12/4 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個支持 CodeFirst/DbFirst/ModelFirst 的數據庫小工具

Intro

DbTool 是一個支持 CodeFirst/DbFirst/ModelFirst 的數據庫小工具,原本是基于 dotnet framework WinForm 實現的,在 1.1.0 版本更新中使用 dotnet core 3.1 基于 WPF 重寫了,并實現了一個簡單的基于插件模式開發模式并引入了多語言的基礎支持。

數據庫當前支持 SqlServer 和 MySql,可以自己擴展其他類型數據庫。

可以利用這個小工具生成數據庫表對應的 Model,并且會判斷數據表列是否可以為空,可以為空的情況下會使用可空的數據類型,如 int? , DateTime? ,如果數據庫中有列描述信息,也會生成在屬性名稱上添加列描述的注釋,支持導出多個表;可以導出到Excel,可以根據Excel字段文檔生成Sql,數據庫表誤刪除又沒有備份的時候就很有幫助了,而且支持反向的根據生成的Model去生成創建數據庫表的Sql(供參考)。

基本功能

功能一覽

功能說明

  • DbFirst

    Model 設置選項說明:

    • model的命名空間:生成的 model 所在的命名空間,默認為 Models,不可為空,為空則使用默認值Models

    • model前綴:表名的基礎上加的前綴,默認為空

    • model后綴:表名的基礎上加的后綴,默認為空

    • 生成私有字段,默認為 false,如果為 false則使用自動屬性的代碼風格,反之,使用傳統 get;set; 風格代碼,如:

    • 生成 Description Attribute,默認值為 true,如果為 true則會在屬性字段上生成一個 [Description]的Attribute,如果為false則不生成,效果如下:csharp/// <summary>用戶名</summary>[Description("用戶名")]publicstringUserName{get;set;}

    • 生成 Model 名稱的規則說明:生成的Model的名稱由前綴和表名稱及后綴拼接而成,如果表名以 tab或 tab_或 tbl或 tbl_這些開頭,則會先把這些移除掉再拼接,可以通過自定義插件擴展

  • 設置數據庫連接字符串,并連接數據庫

  • 選擇要導出到 Excel 的數據庫表

  • 導出到 Excel

  • 導出數據庫表到Excel

    • ModelFirst

    • 可以手動填寫信息或者先選擇 Excel 導入數據庫表信息

    • 生成創建數據庫表的?Sql 語句,不會自動在數據庫里創建表,根據生成的 Sql 語句再創建表

    • CodeFirst

    • 根據已有的 Model 生成創建表的 sql ,字段注釋會從屬性的?Description?Attribute 中獲取

    • 根據需要設置是否生成數據庫描述 sql

    • 左側生成表字段信息,右側生成創建表的sql,生成的 Sql 僅供參考,請自行根據需要調整數據類型以及字段長度

    • Settings

    • 修改默認數據庫連接字符串

    • 修改默認數據庫類型

    • 修改默認語言(1.1.0 版本需要重啟應用)

    • 插件擴展

      Packages

      目前的 packages:

      • DbTool.Core?DbTool 用于擴展的接口定義,幫助類

      • DbTool.DbProvider.MySql?DbTool 對于 MySql 的支持

      • DbTool.DbProvider.SqlServer?DbTool 對于 SqlServer 的支持

      擴展方式

    • 擴展數據庫支持,實現?IDbProvider

    • 擴展導出方式,實現?IDbDocExporter,當前支持導出?Excel

    • 擴展 Model 代碼生成方式,實現?IModelCodeGenerator,根據數據庫表信息生成 Model

    • 擴展 Model 名稱表名稱轉化,實現?IModelNameConverter,也可以繼承?DefaultModelNameConverter,改寫某一個實現

    • 自定義擴展使用方式

      新建一個類庫項目,引用 DbTool.Core,并實現相應的接口,實現對應的邏輯,將生成的 dll 放在 DbTool 的 plugins 目錄下即可

      舉個例子,自定義一個 Markdown Exporter 插件

    • 新建一個項目?DbTool.DbDocExporter.Markdown,并引用?DbTool.Core

    • 添加?MarkdownDbDocExporter?類并實現?IDbDocExporter?接口

    • dotnet build?生成 dll,并將生成的 dll 放在?plugins?目錄下

    • Reference

      • https://github.com/WeihanLi/DbTool

      • https://github.com/WeihanLi/DbTool/tree/packages

    總結

    以上是生活随笔為你收集整理的一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。