Skip to content

DbFirst

2881099 edited this page Feb 27, 2020 · 29 revisions

FreeSql 支持 DbFirst 的开发模式,即先有数据库再有项目,这种传统的开发模式永远不会过时,适合老项目仍然在维护,或者数据库重构成本过高的项目。关系型数据库有许多成熟的运维和开发类配套工具,例如我们所关注的ER图工具 PowerDesigner,使用它可以更直观的查看表之间的关系。除了FreeSql作者同时在维护超过十年的代码生成器dotnetGen项目,它是一款支持超快速开发且高度可控的解决方案,作者非常喜欢 DbFirst 的开发模式,因此在 FreeSql for DbFirst 功能上会有不错的支持。

DbFirst 模式开发主要提供了不同数据库的表结构查询适配,配合模板生成器实现从数据库导入模型到c#代码中。

IFreeSql fsql = new FreeSql.FreeSqlBuilder()
    .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10")
    .Build(); //请务必定义成 Singleton 单例模式

获取所有数据库

var t1 = fsql.DbFirst.GetDatabases();
//返回字符串数组, ["cccddd", "test"]

获取指定数据库的表信息

var t2 = fsql.DbFirst.GetTablesByDatabase(fsql.DbFirst.GetDatabases()[0]);
//返回包括表、列详情、主键、唯一键、索引、外键、备注等等

安装 dotnet-tool 生成实体类(推荐使用)

dotnet tool install -g FreeSql.Generator

新建目录,在地址栏输入 cmd 快速打开命令窗口,输入命令:

FreeSql.Generator --help

使用命令行工具生成实体类的极大好处,是后续的重新生成操作(一键完成)。

安装 Winform 生成器(停止更新)

源码地址:https://github.com/2881099/FreeSql.Tools

作者:mypeng1985

image

参考资料

Clone this wiki locally