{"id":15002719,"url":"https://github.com/weihanli/dbtool","last_synced_at":"2025-04-05T20:09:01.701Z","repository":{"id":12409657,"uuid":"71752007","full_name":"WeihanLi/DbTool","owner":"WeihanLi","description":"数据库工具，根据表结构文档生成创建表sql，根据数据库表信息导出Model和表结构文档，根据文档生成数据库表，根据已有Model文件生成创建数据库表sql","archived":false,"fork":false,"pushed_at":"2023-11-24T05:52:42.000Z","size":2404,"stargazers_count":336,"open_issues_count":3,"forks_count":97,"subscribers_count":23,"default_branch":"wpf-dev","last_synced_at":"2025-04-05T20:08:48.271Z","etag":null,"topics":["code-generator","codefirst","csharp","db-docs","dbfirst","dbtool","modelfirst","mysql","sqlserver"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WeihanLi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-10-24T04:33:52.000Z","updated_at":"2025-03-07T03:47:51.000Z","dependencies_parsed_at":"2024-01-13T17:47:47.344Z","dependency_job_id":"e6a5c2b8-c666-405e-be84-77678ec4f5ce","html_url":"https://github.com/WeihanLi/DbTool","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeihanLi%2FDbTool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeihanLi%2FDbTool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeihanLi%2FDbTool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WeihanLi%2FDbTool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WeihanLi","download_url":"https://codeload.github.com/WeihanLi/DbTool/tar.gz/refs/heads/wpf-dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393572,"owners_count":20931813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-generator","codefirst","csharp","db-docs","dbfirst","dbtool","modelfirst","mysql","sqlserver"],"created_at":"2024-09-24T18:52:04.210Z","updated_at":"2025-04-05T20:09:01.676Z","avatar_url":"https://github.com/WeihanLi.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DbTool\n\n一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库工具。\n\n[![Build Status](https://weihanli.visualstudio.com/Pipelines/_apis/build/status/WeihanLi.DbTool?branchName=wpf-dev)](https://weihanli.visualstudio.com/Pipelines/_build/latest?definitionId=18\u0026branchName=wpf-dev)\n\n[![GitHub release](https://img.shields.io/github/release/WeihanLi/DbTool.svg?style=plastic)](https://github.com/WeihanLi/DbTool/releases/latest)\n\n## 简介\n\n这是一个针对 `SqlServer` 和 `C#` 的数据库的小工具，可以利用这个小工具生成数据库表对应的 Model，并且会判断数据表列是否可以为空，可以为空的情况下会使用可空的数据类型，如\nint? , DateTime? ，如果数据库中有列描述信息，也会生成在属性名称上添加列描述的注释，支持导出多个表；可以导出到Excel，可以根据Excel字段文档生成Sql，数据库表误删除又没有备份的时候就很有帮助了，而且支持反向的根据生成的Model去生成创建数据库表的Sql。\n\n\u003e ### 注：暂时不支持索引及外键等需要关联另外一张表的数据关系\n\n[下载DbTool](https://github.com/WeihanLi/DbTool/releases)\n\n## 为什么使用它\n\n1. [x] 根据表字段信息生成创建表 Sql（Model First）\n1. [x] 导入 Excel/Csv 文件生成创建表的 Sql（Model First）\n1. [x] 根据数据库表信息生成数据库表 Excel/Csv 文档（Db First）\n1. [x] 根据数据库表信息生成 Model 文件，支持数据列可空导出为可空数据类型/支持导出列描述信息（Db First）\n1. [x] 根据 Model 生成 sql 语句（Code First）\n1. [x] 支持一次导出多张数据表/支持一次选择多个 Model 文件\n1. [x] 支持 SqlServer、MySql、PostgreSql\n\n## 扩展开发\n\n- [ ] 丰富插件(插件开发指南：\u003chttps://github.com/WeihanLi/DbTool.Packages/blob/main/README.md\u003e)\n\n## 功能一览\n\n![DbFirst](resources/desc0.png)\n\n![ModelFirst](resources/desc1.png)\n\n![CodeFirst](resources/desc2.png)\n\n![Settings](resources/desc3.png)\n\n## 使用说明\n\n1. DbFirst\n\n    1. 导出数据库表到Model\n\n        1. 设置数据库连接字符串，并连接数据库\n        1. 设置导出 Model 选项\n        1. 选择要导出 Model 的数据库表\n        1. 导出 Model\n\n    \u003e Model 设置选项说明：\n    \u003e - model的命名空间：生成的 model 所在的命名空间，默认为 Models，不可为空，为空则使用默认值Models\n    \u003e - model前缀：表名的基础上加的前缀，默认为空\n    \u003e - model后缀：表名的基础上加的后缀，默认为空\n    \u003e - 生成私有字段，默认为 `false`，如果为`false`则使用自动属性的代码风格，反之，使用传统 `get;set;` 风格代码，如：\n    \u003e - 全局引用，启用 Global using 和 Implicit Using 特性，默认使用 .NET SDK 包含的引用集合\n    \u003e - 可空引用类型，启用可空引用类型，如果数据库列可以为空的字符串，则对应属性会是可为空的字符串 `string?`\n    \u003e - 文件范围命名空间，启用文件范围命名空间，如： `namespace Models;`\n    \u003e     ``` csharp\n    \u003e     public int Id { get; set; } //自动属性风格代码\n    \u003e\n    \u003e     private int id1;\n    \u003e     public int Id1 { get{ return id1; } set { id1 = value; } } //传统get;set风格代码\n    \u003e     ```\n    \u003e - 生成 Table/Column/Key 信息，生成 DataAnnotation Attribute，默认值为 `true`，如果为`true`则会在属性字段上生成一个`[Description]`的Attribute，如果为false则不生成，效果如下：\n    \u003e   ``` csharp\n    \u003e   /// \u003csummary\u003e用户名\u003c/summary\u003e\n    \u003e   [Description(\"用户名\")]\n    \u003e   public string UserName { get;set; }\n    \u003e   ```\n    \u003e - 生成 Model 名称的规则说明：生成的Model的名称由前缀和表名称及后缀拼接而成，如果表名以 `tab`或`tab_`或`tbl`或`tbl_`这些开头，则会先把这些移除掉再拼接，可以通过自定义插件扩展\n\n    1. 导出数据库表到Excel\n\n        1. 设置数据库连接字符串，并连接数据库\n        1. 选择要导出到 Excel/Csv 的数据库表\n        1. 导出到 Excel/Csv\n\n2. ModelFirst\n\n    1. 可以手动填写信息或者先选择 Excel/Csv 导入\n    1. 只生成 Sql 语句，不会自动在数据库里创建表，根据生成的 Sql 语句再创建表\n\n3. CodeFirst\n\n    1. 根据已有的 Model 生成创建表的 sql ，字段注释会从属性的 `Description` Attribute 中获取\n    1. 根据需要设置是否生成数据库描述 sql\n    1. 左侧生成表字段信息，右侧生成创建表的sql，生成的 Sql 仅供参考，请自行根据需要调整数据类型以及字段长度\n\n4. Settings\n\n    1. 修改默认数据库连接字符串\n    1. 修改默认数据库类型\n    1. 修改默认语言\n    1. 修改默认全局引用配置\n    1. 修改默认可空引用类型配置\n    1. 修改默认文件范围命名空间配置\n\n## Contact Me\n\n如果你遇到了什么问题，欢迎联系我 \u003cweihanli@outlook.com\u003e\n\n或者在这里[提出问题](https://github.com/WeihanLi/DbTool/issues/new)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweihanli%2Fdbtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweihanli%2Fdbtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweihanli%2Fdbtool/lists"}