一个支持 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 版本需要重啟應用)
DbTool.Core?DbTool 用于擴展的接口定義,幫助類
DbTool.DbProvider.MySql?DbTool 對于 MySql 的支持
DbTool.DbProvider.SqlServer?DbTool 對于 SqlServer 的支持
擴展數據庫支持,實現?IDbProvider
擴展導出方式,實現?IDbDocExporter,當前支持導出?Excel
擴展 Model 代碼生成方式,實現?IModelCodeGenerator,根據數據庫表信息生成 Model
擴展 Model 名稱表名稱轉化,實現?IModelNameConverter,也可以繼承?DefaultModelNameConverter,改寫某一個實現
新建一個項目?DbTool.DbDocExporter.Markdown,并引用?DbTool.Core
添加?MarkdownDbDocExporter?類并實現?IDbDocExporter?接口
dotnet build?生成 dll,并將生成的 dll 放在?plugins?目錄下
https://github.com/WeihanLi/DbTool
https://github.com/WeihanLi/DbTool/tree/packages
插件擴展
Packages
目前的 packages:
擴展方式
自定義擴展使用方式
新建一個類庫項目,引用 DbTool.Core,并實現相應的接口,實現對應的邏輯,將生成的 dll 放在 DbTool 的 plugins 目錄下即可
舉個例子,自定義一個 Markdown Exporter 插件
Reference
總結
以上是生活随笔為你收集整理的一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET 开源导入导出库Magic
- 下一篇: k8s - 如何变更CNI网络插件IP池