前言

.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信息,所以这里就拍照片了

在这里插入图片描述
这样我们就大大减轻了我们代码的工作量。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐