一个支持 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(供参考)。

基本功能

功能一览

cf54616623076a68c9020eb7e5c92cb8.png

3644a6bce6efc6822babcb0f707c4ad1.png

c32c90342ce116f35fa3095bcf6af93f.png

dd90808833c33a536a34c0224ba07b60.png

功能说明

  1. 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的名称由前缀和表名称及后缀拼接而成,如果表名以 tabtab_tbltbl_这些开头,则会先把这些移除掉再拼接,可以通过自定义插件扩展

  1. 设置数据库连接字符串,并连接数据库

  2. 选择要导出到 Excel 的数据库表

  3. 导出到 Excel

  4. 导出数据库表到Excel

ModelFirst

  1. 可以手动填写信息或者先选择 Excel 导入数据库表信息

  2. 生成创建数据库表的 Sql 语句,不会自动在数据库里创建表,根据生成的 Sql 语句再创建表

CodeFirst

  1. 根据已有的 Model 生成创建表的 sql ,字段注释会从属性的 Description Attribute 中获取

  2. 根据需要设置是否生成数据库描述 sql

  3. 左侧生成表字段信息,右侧生成创建表的sql,生成的 Sql 仅供参考,请自行根据需要调整数据类型以及字段长度

Settings

  1. 修改默认数据库连接字符串

  2. 修改默认数据库类型

  3. 修改默认语言(1.1.0 版本需要重启应用)

插件扩展

Packages

目前的 packages:

  • DbTool.Core DbTool 用于扩展的接口定义,帮助类

  • DbTool.DbProvider.MySql DbTool 对于 MySql 的支持

  • DbTool.DbProvider.SqlServer DbTool 对于 SqlServer 的支持

扩展方式

  1. 扩展数据库支持,实现 IDbProvider

  2. 扩展导出方式,实现 IDbDocExporter,当前支持导出 Excel

  3. 扩展 Model 代码生成方式,实现 IModelCodeGenerator,根据数据库表信息生成 Model

  4. 扩展 Model 名称表名称转化,实现 IModelNameConverter,也可以继承 DefaultModelNameConverter,改写某一个实现

自定义扩展使用方式

新建一个类库项目,引用 DbTool.Core,并实现相应的接口,实现对应的逻辑,将生成的 dll 放在 DbToolplugins 目录下即可

举个例子,自定义一个 Markdown Exporter 插件

  1. 新建一个项目 DbTool.DbDocExporter.Markdown,并引用 DbTool.Core

  2. 添加 MarkdownDbDocExporter 类并实现 IDbDocExporter 接口

  3. dotnet build 生成 dll,并将生成的 dll 放在 plugins 目录下

1669b386ac3dd8d7a2ab0a10828f4c28.png

c26e726941cbf1629d3a33c6e3b819f6.png

9ae1ef3eaebed7240be177aad315b041.png

Reference

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值