一个支持 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 的数据库表

导出 Model

Model 设置选项说明:

model的命名空间:生成的 model 所在的命名空间,默认为 Models,不可为空,为空则使用默认值Models

model前缀:表名的基础上加的前缀,默认为空

model后缀:表名的基础上加的后缀,默认为空

生成私有字段,默认为 false,如果为false则使用自动属性的代码风格,反之,使用传统 get;set; 风格代码,如:

“` csharp

public int Id { get; set; } //自动属性风格代码

private int id1;

public int Id1 { get{ return id1; } set { id1 = value; } } //传统get;set风格代码

“`

生成 Description Attribute,默认值为 true,如果为true则会在属性字段上生成一个[Description]的Attribute,如果为false则不生成,效果如下:

/// 用户名

[Description("用户名")]

public string UserName { 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://www.cnblogs.com/

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

mysql model first,一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具相关推荐

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

    一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具 Intro DbTool 是一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具,原本 ...

  2. 自己写的一个LOL云顶智之奕小工具

    自己写的一个LOL云顶智之奕小工具 注:由于此软件后期没有再维护,所以已经放弃开源了,软件已经不支持最近的英雄联盟版本了.为此我感到抱歉. 先看截图: 首先是一个悬浮窗口,可以任意拖动,右键点击黑色部 ...

  3. 一个把图片保存到SQL数据库的工具

    因公司的业务需要,会把很多图片保存到数据库中.因此做了一个很简单的工具,把图片保存到SQL数据库中. 1.可以连接到不同服务器上的SQL数据库,可以选择操作各个表; 2.可以指定保存到数据库的图片格式 ...

  4. setproxy_SetProxy:一个设置IE代理的命令行小工具

    setproxy IE的代理设置用起来并不方便,我自己而言就要经常更改代理服务器,相信很多人有跟我相同的需要.使用C++编写了一个小程序SetProxy调用Win32 API来设置代理服务器IP,用起 ...

  5. java-利用反射做一个将javabean对象转为json的小工具(v1)

    java-利用反射做一个将javabean对象转为json字符串的小工具(v1) 解决思路 1 利用反射机制获取对象的所有字段 2 遍历,将字段名和值按照一定格式添加到字符串中 所需知识 1 反射基础 ...

  6. Python-两个列表取交集、并集、差集(编写了一个两个文件取交集的小工具)

    最近突然有个需求(取两个文件数据的交集),数据量非常大(2000多万行的数据),最开始的思路是先取一个文件所有的数据,保存成一个列表,然后判断是否在另一个文件中,花了十几分钟写出来后,一运行,差点崩溃 ...

  7. 一个批量生成联系人数据(vcf)的小工具

    一个批量生成联系人数据的小工具(vcf) 1.Python代码 代码如下(示例): import random def create_contact(number):surname = [" ...

  8. 发一个自动刷网站PV流量的小工具

    刷IP需要很多资源或财力,而刷PV却非常easy,一直要有一个能上网的机器,就能刷出N个PV值来.因为需要,写了个刷PV的小工具,可以设置要刷的页面,设置时间间隔. 下载 转载于:https://ww ...

  9. 一个通过捕获ARP发现IP的小工具

    0 由来 公司接入层交换机划分了很多Vlan,每个Vlan对应一个IP子网,各个房间所属Vlan号非常混乱.有时候,电脑IP丢失或新配电脑时,不能知道到底该配置那个IP网段.解决办法就是,登录交换机, ...

最新文章

  1. Makefile与Shell的问题
  2. shell编程 case语句
  3. 国内免费Blog博客程序评测(含ASP/PHP/.net)
  4. Firefox鼠标手势插件在哪安装 火狐浏览器鼠标手势怎么用
  5. odoo10参考系列--操作(Actions)
  6. [研究笔记]Lambda表达式学习笔记
  7. PTA—求整数段和(C语言)
  8. 图像形状特征(七)--Zernike矩
  9. iview中table里嵌套i-switch、input、select等
  10. 题目243-交换输出
  11. php mysql网站设计_基于PHP和MySQL的网站设计与实现
  12. Java课程设计- 记事本代码
  13. 官方VM tools下载地址
  14. ipad4越狱显示服务器维修,iPad越狱后怎么恢复出厂设置及恢复中所出现问题的解决方法...
  15. 面试题-取出url中的参数以json对象结构输出(JavaScript)
  16. PAT甲级 1031
  17. 酒吧空间怎样量身打造
  18. 迷你英雄无限服务器没了吗,迷你英雄:无限无法连接服务器是什么原因
  19. 怎样快速在线把pdf转换成word
  20. Gscoolink 基石 GSV2011 HDMI接口芯片 HDMI芯片 HDMI2.0芯片

热门文章

  1. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
  2. “chaos”的算法---之哈希表(HASH)算法详解
  3. Struts2获取request三种方法
  4. 黑鹰长期班.边程浪子系列教程
  5. html5 javascript 事件练习3键盘控制练习
  6. 棋盘上的孙子兵法之我见
  7. SQL Server 重置SA密码语句
  8. 分享用mockplus原型图工具制作的
  9. STP HSRP和NAT结合实现网络出口的冗余和次优路径分析
  10. 第15章 关于本软件