.NET框架 - NETCORE + API + EF + MYSQL
.NET框架 - NETCORE + API + EFCORE + MYSQL
1. 新建项目:
本文中使用 框架 .netcore2.2 。
2. 生成项目框架
3 安装MYSQL插件
点击“工具”->“NuGet包管理器”->“程序包管理器控制台”
安装命令:install-package <程序包名> -version <版本号>
分别安装以下几个包
Mysql 版本:
Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package Pomelo.EntityFrameworkCore.MySql Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
Sql server 版本:
Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
2.在程序包包管理器控制台 中执行以下语句生成 实体类
--mysql 版本:
Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force 或者 Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force
--sql server 版本
Scaffold-DbContext "Data Source=.;Initial Catalog=EFCore_dbfirst;User ID=sa;Password=sa.123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
参数说明:
-OutputDir *** 实体文件所存放的文件目录 -ContextDir *** DbContext文件存放的目录 -Context *** DbContext文件名 -Schemas *** 需要生成实体数据的数据表所在的模式 -Tables *** 需要生成实体数据的数据表的集合 -DataAnnotations -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持) -Force 强制执行,重写已经存在的实体文件
4. 配置DBContext
ASP.NET Core 应用程序连接字符串是写死在ConfigureServices代码中,下面介绍通过配置来实现。连接字符串可以存储在 appsettings.json
、用户机密存储、其他配置源中。 下面示例演示appsettings.json
中存储的连接字符串,这样不管asp.net core在什么环境(Development、Staging 、Production)都能调用该文件。
生成的DBContext中是包含数据库连接字段的,我们需要把它放在配置文件中。
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "MES_MySql": "server=localhost;userid=root;pwd=123456;port=3306;database=db1;sslmode=none;" } }
通常在Startup.cs
中
读取连接字符串。 使用GetConnectionString()
方法查找配置值,该查询的格式:ConnectionStrings:<connection string name>
其中键是connection
。
// var connection = "Data Source = {ip}; Initial Catalog = EFGetStarted.AspNetCore.NewDb; User ID = hsr;Password =js*2015;"; // var connection = Configuration.GetConnectionString("BloggingDatabase"); // services.AddDbContext<EFGetStartedAspNetCoreNewDbContext>(options => options.UseSqlServer(connection));
var connection = Configuration.GetConnectionString("MES_MySql");
services.AddDbContext<db1Context>(options => options.UseMySQL(connection));
5. 在webAPI应用程序中,使用依赖注入的方式。
完成。
引用:https://www.cnblogs.com/yangjinwang/p/9516988.html
引用:https://www.cnblogs.com/MrHSR/p/10364918.html