• Stars
    star
    318
  • Rank 131,872 (Top 3 %)
  • Language
    C#
  • License
    MIT License
  • Created about 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

数据库工具,根据表结构文档生成创建表sql,根据数据库表信息导出Model和表结构文档,根据文档生成数据库表,根据已有Model文件生成创建数据库表sql

DbTool

一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库工具。

Build Status

GitHub release

简介

这是一个针对 SqlServerC# 的数据库的小工具,可以利用这个小工具生成数据库表对应的 Model,并且会判断数据表列是否可以为空,可以为空的情况下会使用可空的数据类型,如 int? , DateTime? ,如果数据库中有列描述信息,也会生成在属性名称上添加列描述的注释,支持导出多个表;可以导出到Excel,可以根据Excel字段文档生成Sql,数据库表误删除又没有备份的时候就很有帮助了,而且支持反向的根据生成的Model去生成创建数据库表的Sql。

注:暂时不支持索引及外键等需要关联另外一张表的数据关系

下载DbTool

为什么使用它

  1. 根据表字段信息生成创建表 Sql(Model First)
  2. 导入 Excel/Csv 文件生成创建表的 Sql(Model First)
  3. 根据数据库表信息生成数据库表 Excel/Csv 文档(Db First)
  4. 根据数据库表信息生成 Model 文件,支持数据列可空导出为可空数据类型/支持导出列描述信息(Db First)
  5. 根据 Model 生成 sql 语句(Code First)
  6. 支持一次导出多张数据表/支持一次选择多个 Model 文件
  7. 支持 SqlServer、MySql、PostgreSql

扩展开发

功能一览

DbFirst

ModelFirst

CodeFirst

Settings

使用说明

  1. DbFirst

    1. 导出数据库表到Model

      1. 设置数据库连接字符串,并连接数据库
      2. 设置导出 Model 选项
      3. 选择要导出 Model 的数据库表
      4. 导出 Model

    Model 设置选项说明:

    • model的命名空间:生成的 model 所在的命名空间,默认为 Models,不可为空,为空则使用默认值Models
    • model前缀:表名的基础上加的前缀,默认为空
    • model后缀:表名的基础上加的后缀,默认为空
    • 生成私有字段,默认为 false,如果为false则使用自动属性的代码风格,反之,使用传统 get;set; 风格代码,如:
    • 全局引用,启用 Global using 和 Implicit Using 特性,默认使用 .NET SDK 包含的引用集合
    • 可空引用类型,启用可空引用类型,如果数据库列可以为空的字符串,则对应属性会是可为空的字符串 string?
    • 文件范围命名空间,启用文件范围命名空间,如: namespace Models;
      public int Id { get; set; } //自动属性风格代码
      
      private int id1;
      public int Id1 { get{ return id1; } set { id1 = value; } } //传统get;set风格代码
    • 生成 Table/Column/Key 信息,生成 DataAnnotation Attribute,默认值为 true,如果为true则会在属性字段上生成一个[Description]的Attribute,如果为false则不生成,效果如下:
      /// <summary>用户名</summary>
      [Description("用户名")]
      public string UserName { get;set; }
    • 生成 Model 名称的规则说明:生成的Model的名称由前缀和表名称及后缀拼接而成,如果表名以 tabtab_tbltbl_这些开头,则会先把这些移除掉再拼接,可以通过自定义插件扩展
    1. 导出数据库表到Excel

      1. 设置数据库连接字符串,并连接数据库
      2. 选择要导出到 Excel/Csv 的数据库表
      3. 导出到 Excel/Csv
  2. ModelFirst

    1. 可以手动填写信息或者先选择 Excel/Csv 导入
    2. 只生成 Sql 语句,不会自动在数据库里创建表,根据生成的 Sql 语句再创建表
  3. CodeFirst

    1. 根据已有的 Model 生成创建表的 sql ,字段注释会从属性的 Description Attribute 中获取
    2. 根据需要设置是否生成数据库描述 sql
    3. 左侧生成表字段信息,右侧生成创建表的sql,生成的 Sql 仅供参考,请自行根据需要调整数据类型以及字段长度
  4. Settings

    1. 修改默认数据库连接字符串
    2. 修改默认数据库类型
    3. 修改默认语言
    4. 修改默认全局引用配置
    5. 修改默认可空引用类型配置
    6. 修改默认文件范围命名空间配置

Contact Me

如果你遇到了什么问题,欢迎联系我 [email protected]

或者在这里提出问题

More Repositories

1

WeihanLi.Common

common tools, methods, extension methods, etc... .net 常用工具类,公共方法,常用扩展方法等,基础类库
C#
214
star
2

WeihanLi.Npoi

NPOI Extensions, excel/csv importer/exporter for IEnumerable<T>/DataTable, fluentapi(great flexibility)/attribute configuration
C#
193
star
3

DesignPatterns

DesignPatterns samples by csharp on dotnetcore 《大话设计模式》 中设计模式总结/C#(.NET)代码
C#
111
star
4

StackExchange.Redis-docs-zh-cn

StackExchange.Redis中文使用文档
102
star
5

AccessControlHelper

AccessControlHelper for asp.net mvc and asp.net core, strategy based authorization
C#
74
star
6

SamplesInPractice

some samples in practice
C#
61
star
7

WeihanLi.EntityFramework

EntityFrameworkCore extensions
C#
58
star
8

SparkTodo

TodoList WebApi Powered by ASP.NET Core and JWT token auth
C#
47
star
9

WeihanLi.Redis

RedisExtensions for StackExchange.Redis, Cache/Redlock/Counter/RateLimiter/Rank/RedisEventBus
C#
46
star
10

dotnet-exec

dotnet execute with custom entry point, another dotnet run without project file
C#
37
star
11

dotnet-httpie

Amazing HTTP command-line tool powered by .NET, inspired by httpie
C#
26
star
12

ProxyCrawler

代理爬虫服务,爬取代理IP并保存到 Redis 中, topshelf+Quartz.Net+redis
C#
25
star
13

AspNetCorePlayground

AspNetCorePlayground
C#
23
star
14

WeihanLi.Web.Extensions

asp.net core web extensions
C#
15
star
15

MvcSimplePager

Simple,lightweight,easy to expand pager for asp.net mvc and asp.net core,针对asp.net mvc 和 asp.net core 设计的通用、扩展性良好的轻量级分页扩展
C#
13
star
16

docker-env

some docker images build environment
Dockerfile
12
star
17

XunitDependencyInjection.Samples

samples for https://github.com/pengweiqhca/Xunit.DependencyInjection
C#
9
star
18

WeihanLi.Extensions.Localization.Json

dotnetcore json based localization support
C#
7
star
19

WeihanLi.DataProtection

asp.net core data protection extensions
C#
7
star
20

weihanli.github.io

weihanli's personal homepage
TypeScript
7
star
21

OrmBenchmark

OrmBenchmark for .net framework and .net core
6
star
22

Markdown2HtmlTool

markdown2htmlTool markdown转换为html小工具
C#
5
star
23

AccountingApp

Accounting App Powered by asp.net core
C#
4
star
24

DbTool.Packages

DbTool packages source code
C#
4
star
25

roslyn-docs-zh-cn

【TODO】roslyn中文文档,原英文文档参考 https://github.com/dotnet/roslyn/tree/main/docs
3
star
26

markdown-syntax-summary

markdown 语法总结,包含基本的markdown语法和github支持的markdown语法
3
star
27

WeihanLi.Profile

weihanli's personal profile
2
star
28

PrivateSpaceDemo

ASP.NETMVC Demo website,ASP.NET Wechat Develop,ASP.NETMVC网站私密空间,ASP.NET MVC微信开发
JavaScript
2
star
29

dotnet-exec-action

Github action for dotnet-exec
C#
1
star
30

PublishPlatform

xx 项目发布平台 demo, asp.net core webapi + angular 9
TypeScript
1
star
31

WeihanLi.Templates

project templates for dotnet new
TypeScript
1
star
32

TechNotes

my tech notes about dotnet/arch
1
star
33

LeetCodeSolutions

LeetCodeSolutions powered by csharp
C#
1
star