DbTool 一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库工具。
这是一个针对 SqlServer 和 C# 的数据库的小工具,可以利用这个小工具生成数据库表对应的 Model,并且会判断数据表列是否可以为空,可以为空的情况下会使用可空的数据类型,如
int? , DateTime? ,如果数据库中有列描述信息,也会生成在属性名称上添加列描述的注释,支持导出多个表;可以导出到Excel,可以根据Excel字段文档生成Sql,数据库表误删除又没有备份的时候就很有帮助了,而且支持反向的根据生成的Model去生成创建数据库表的Sql。
DbTool.CoreDbTool 用于扩展的接口定义,帮助类DbTool.DbProvider.MySqlDbTool 对于 MySql 的支持DbTool.DbProvider.SqlServerDbTool 对于 SqlServer 的支持DbTool.DbProvider.PostgreSqlDbTool 对于 PostgreSql 的支持
- 扩展数据库支持,实现
IDbProvider, - 扩展文档导出支持,实现
IDbDocExporter,将数据库表信息导出到文档 - 扩展文档导入支持,实现
IDbDocImporter从数据库文档中获取数据库表信息 - 扩展 Model 代码生成方式,实现
IModelCodeGenerator,根据数据库表信息生成代码 Model - 扩展从 Model 代码中获取数据表信息,实现
IModelCodeExtractor - 扩展 Model 名称表名称转化,实现
IModelNameConverter,也可以继承DefaultModelNameConverter,改写某一个实现
新建一个类库项目,引用 DbTool.Core,并实现相应的接口,实现对应的逻辑,将生成的 dll 放在 DbTool 的 plugins 目录下即可
举个例子,自定义一个 Markdown Exporter 插件
-
新建一个项目
DbTool.DbDocExporter.Markdown,并引用DbTool.Core -
添加
MarkdownDbDocExporter类并实现IDbDocExporter接口 -
dotnet build生成 dll,并将生成的 dll 放在plugins目录下