标签:需要 ltm sqlserver 帮助 情况 支持 开发模式 注释 plugin
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 所在的命名空间,默认为 Models,不可为空,为空则使用默认值Models
- model前缀:表名的基础上加的前缀,默认为空
- model后缀:表名的基础上加的后缀,默认为空
生成私有字段,默认为
private int id1;false
,如果为false
则使用自动属性的代码风格,反之,使用传统get;set;
风格代码,如:
``` csharp
public int Id { get; set; } //自动属性风格代码
public int Id1 { get{ return id1; } set { id1 = value; } } //传统get;set风格代码
```生成 Description Attribute,默认值为
true
,如果为true
则会在属性字段上生成一个[Description]
的Attribute,如果为false则不生成,效果如下:/// <summary>用户名</summary> [Description("用户名")] public string UserName { get;set; }
生成 Model 名称的规则说明:生成的Model的名称由前缀和表名称及后缀拼接而成,如果表名以
tab
或tab_
或tbl
或tbl_
这些开头,则会先把这些移除掉再拼接,可以通过自定义插件扩展
导出数据库表到Excel
ModelFirst
CodeFirst
Description
Attribute 中获取Settings
目前的 packages:
DbTool.Core
DbTool 用于扩展的接口定义,帮助类DbTool.DbProvider.MySql
DbTool 对于 MySql 的支持DbTool.DbProvider.SqlServer
DbTool 对于 SqlServer 的支持IDbProvider
IDbDocExporter
,当前支持导出 Excel
IModelCodeGenerator
,根据数据库表信息生成 ModelIModelNameConverter
,也可以继承 DefaultModelNameConverter
,改写某一个实现新建一个类库项目,引用 DbTool.Core
,并实现相应的接口,实现对应的逻辑,将生成的 dll
放在 DbTool
的 plugins
目录下即可
举个例子,自定义一个 Markdown Exporter 插件
DbTool.DbDocExporter.Markdown
,并引用 DbTool.Core
MarkdownDbDocExporter
类并实现 IDbDocExporter
接口dotnet build
生成 dll,并将生成的 dll 放在 plugins
目录下一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
标签:需要 ltm sqlserver 帮助 情况 支持 开发模式 注释 plugin
原文地址:https://www.cnblogs.com/weihanli/p/powerful-database-tool-for-dotnet.html