原文地址: https://www.jeremyjone.com/638/,转载请注明
本文演示了MySql Entityframework在.net core中的基本使用。
添加依赖包
使用NuGet添加依赖,全部使用最新的即可。
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
MySql.Data.EntityFrameworkCore
Plmelo.EntityFrameworkCore.MySql
安装后,就可以添加代码了。
添加连接
在appsettings.json
中添加如下代码:
"ConnectionStrings": {
"Database": "Server=192.168.1.22;User Id=jeremyjone;Password=123456;Database=db;"
}
这里注意,需要将所有参数换成自己的正确参数。如果数据库不是本地的,一般情况下是不能用root用户的,需要注意。
创建实体
这里需要注意,此操作是基于数据库已经创建好的情况,一般情况下,我也更推荐这种做法,数据库在初期就已经创建好,不需要进行来回变动。
我的测试数据库中有一个company表:
在程序包管理器控制台(工具 -> NuGet包管理器 -> 程序包管理器控制台,或者使用快捷键 ctrl + `)中输入下面的命令。
Scaffold-DbContext "Server=192.168.1.22;User Id=jeremyjone;Password=123456;Database=db;" "Pomelo.EntityFrameworkCore.MySql" -OutputDir Models -force
其中,-OutPutDir
表示生成的类放在哪个文件夹,-force
表示如果文件夹中有同名文件,替换之。
输入后确定,会直接创建出对应的实体模型和数据库上下文。
包括下面的OnModelCreateing
函数,完全不用我们手写,只需要稍加整理后,我们就可以直接使用了。
注入数据库上下文
打开Startup.cs
文件,首先添加一个构造函数,将IConfiguration
注入:
public IConfiguration Configuration {
get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
然后在ConfigureServices
函数中,注入数据库上下文:
// 首先取出appsettings中的连接字符串,注意参数名应与appsettings中键一致
var connectionString = Configuration.GetConnectionString("Database");