.NET Core 数据库DB First自动生成,Sqlite,sql server,Mysql
NET Core是C# .NET 未来发展的必然趋势,C# 要像Java一样跨平台运行。这里解决一个.NET core 会遇到的问题,如何添加ORM框架。数据表和代码实体对象完全一致用代码生成Sql语句以前在.NET Framwork 上面的时候,我们可以通过添加 ADO.NET文件来自动生成。但是在.NET core 版本无法添加,因为其依赖于.NET Framework。而且默认只支持sql
前言
.NET Core是C# .NET 未来发展的必然趋势,C# 要像Java一样跨平台运行。这里解决一个.NET core 会遇到的问题,如何添加ORM框架。
ORM是数据库对象映射关系模型,简单来说满足一下两个重要特点:
- 数据表和代码实体对象完全一致
- 用代码生成Sql语句
以前在.NET Framwork 上面的时候,我们可以通过添加 ADO.NET文件来自动生成。但是在.NET core 版本无法添加,因为其依赖于.NET Framework。而且默认只支持sql server。我们其它常用的数据库,例如Mysql,sqlite都不支持。
数据库ORM代码自动添加
前期准备
先新建.NET core控制台文件
安装Nuget
- Microsoft.EntityFrameworkCore
- EF基础框架
- Microsoft.EntityFrameworkCore.Design
- EF生成器,用于生成代码
- Microsoft.EntityFrameworkCore.Tools
- EF管理工具,用于管理数据库版本,例如Mysql,sql server
Sql server
安装 Microsoft.EntityFrameworkCore.SqlServer
在控制台执行以下语句
Scaffold-DbContext 'Data Source=.;Initial Catalog=你的数据库;integrated security=True ;TrustServerCertificate=true; ' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 你的数据库DbContext
解析该语句
- Scaffold-DbContext :EF.Core 自动脚本执行语句
- ‘Data Source …’:数据库连接串,如果是非本机数据库要添加用户名和密码
- Microsoft.EntityFrameworkCore.SqlServer:数据库管理工具
- -OutputDir Models 输出文件
- Context:ORM的Context名称
Mysql
安装 MySql.EntityFrameworkCore,MySql.Data
Tips:Mysql包是由Oracle公司提供的
Scaffold-DbContext "server=localhost;userid=用户名;pwd=密码;port=3306;database=数据表;sslmode=none;" MySql.EntityFrameworkCore -OutputDir 文件夹路径 -Context 你的Context
Sqlite
安装 Microsoft.EntityFrameworkCore.Sqlite
生成指令
Scaffold-DbContext "Data Source=文件位置" Microsoft.EntityFrameworkCore.Sqlite -OutputDir DB/Sqlite -Context SqliteDbContext
Tips:这里的连接地址是文件地址,因为Sqlite是本地数据库,不是网络数据库
查询结果
因为截图按钮会隐藏Debug信息,所以这里就拍照片了
这样我们就大大减轻了我们代码的工作量。
更多推荐
所有评论(0)