MySql 使用 EF Core 2.0 CodeFirst

MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例

dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多。升级的过程中也少不了 Entity Framwork Core 的升级,在这篇文章中主要介绍下 MySql 数据库使用 Entity Framwork Core 2.0 如何进行 Code First、Database First 及数据库迁移(Migration),虽然比较基础,但是做到尽量详细。本文所有示例代码已经提交到 GitHub:https://github.com/starts2000/EFCoreDemo,如果觉得对你有帮助,就给个 Star 吧。

一、工具及环境

  • Visual Studio 2017 15.3

  • .NET CORE 2.0 SDK

二、Entity Framwork Core 2.0 MySql Code First 及 数据库迁移(Migration)

1、创建 .NET Core 类库项目 【Starts2000.EFCoreCodeFirst】

2、添加 User 实体类

MySql 使用 EF Core 2.0 CodeFirst

最终【Starts2000.EFCoreCodeFirst】项目结构如下:

MySql 使用 EF Core 2.0 CodeFirst

3、创建 .NET Core 控制台应用项目 【Starts2000.EFCoreCodeFirst.Test】

  • 添加对 【Starts2000.EFCoreCodeFirst】项目的引用;

  • Nuget 添加 Microsoft.EntityFrameworkCore.Tools 及 Pomelo.EntityFrameworkCore.MySql(注意勾上:包括预发行版) 的引用;

4、编辑 Starts2000.EFCoreCodeFirst.Test.csproj 项目文件,添加如下内容:

MySql 使用 EF Core 2.0 CodeFirst

最终内容如下:

MySql 使用 EF Core 2.0 CodeFirst

5、添加 TestDbContext 类(注意:把数据库连接字符串修改为自己的)

MySql 使用 EF Core 2.0 CodeFirst

6、打开命令行窗口,切换到 【Starts2000.EFCoreCodeFirst.Test】项目文件夹目录,执行如下命令:

MySql 使用 EF Core 2.0 CodeFirst

MySql 使用 EF Core 2.0 CodeFirst

如果命令执行成功,可以看到项目目录中新增了如下内容:

MySql 使用 EF Core 2.0 CodeFirst

7、执行 dotnet ef database update 命令

MySql 使用 EF Core 2.0 CodeFirst

执行成功后,可以看到数据库及表创建成功。

MySql 使用 EF Core 2.0 CodeFirst

8、修改实体,并把修改的内容更新到数据库

User 类的 Account 属性对应 User 表的 Account 列应该是唯一的,前面忘记了设置唯一索引,现在在 TestDbContext 中加上:

MySql 使用 EF Core 2.0 CodeFirst

执行 dotnet ef migrations add UserTableUpdateAccount 命令:

MySql 使用 EF Core 2.0 CodeFirst

如果命令执行成功,可以看到项目目录中新增了如下内容:

MySql 使用 EF Core 2.0 CodeFirst

接着按照 步骤7 的操作,如果成功,可以看到 User 表已经创建了 Account 的唯一索引:

MySql 使用 EF Core 2.0 CodeFirst

9、测试数据写入和读取

在 Main 函数中添加如下代码:

MySql 使用 EF Core 2.0 CodeFirst

把【Starts2000.EFCoreCodeFirst.Test】项目设置为启动项目,编译运行:

MySql 使用 EF Core 2.0 CodeFirst

三、Entity Framwork Core 2.0 MySql Database First

1、新建 【Starts2000.EFCoreDbFirst】 项目

2、Nuget 添加 Pomelo.EntityFrameworkCore.MySql(注意勾上:包括预发行版) 的引用;

3、编辑 Starts2000.EFCoreDbFirst.csproj 项目文件,添加如下内容:

MySql 使用 EF Core 2.0 CodeFirst

最终内容如下:

MySql 使用 EF Core 2.0 CodeFirst

4、打开命令行窗口,切换到 【Starts2000.EFCoreDbFirst】项目文件夹目录,执行如下命令:

MySql 使用 EF Core 2.0 CodeFirst

执行成功后,项目增加了如下内容:

MySql 使用 EF Core 2.0 CodeFirst

5、创建 .NET Core 控制台应用项目 【Starts2000.EFDbFirst.Test】进行测试

  • 添加对 【Starts2000.EFCoreDbFirst】项目的引用;

  • 把 Main 函数修改为如下代码:

MySql 使用 EF Core 2.0 CodeFirst

  • 把【Starts2000.EFCoreDbFirst.Test】项目设置为启动项目,编译运行:

MySql 使用 EF Core 2.0 CodeFirst

相关推荐