php codefirst,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 实体类

c6202296f5d1f473ba35aa952a9ba21a.png

最终【Starts2000.EFCoreCodeFirst】项目布局如下:

139e2d72d40b7b8ff75efdc2cf6eccc3.png

3、创立 .NET Core 控制台应用项目 【Starts2000.EFCoreCodeFirst.Test】添加对 【Starts2000.EFCoreCodeFirst】项目标引用;

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

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

70def5071d3790ddb476db555af1cb33.png

终极内容如下:

2cc730df994b42f71ca326ff15b1e57c.png

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

8f936e44dd1eb66ec7df57d835174521.png

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

21ab80607d7adcd584d4b2b2746bca0d.png

6ca572023d5f25b291cb878b0fdbab94.png

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

bc6d39752c983014294c85ffb917a1a3.png

7、执行 dotnet ef database update 敕令

174c2f726598387c8d48c3a97d346f9d.png

执行胜利后,可以看到数据库及表创建胜利.

9984748756189d396d5b0de68b03615b.png

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

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

7b8da2eb96b777fbde027f667224cfe2.png

执行 dotnet ef migrations add UserTableUpdateAccount 敕令:

2e96105a4fb4809480433c7d4572619c.png

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

1766a10742075fa69405e9925bbef4ea.png

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

888461a1ca6eb588a72d30618ff2a149.png

9、测试数据写入和读取

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

da02242a0cd282ad715e0098eadda724.png

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

11bff6a2bd17bbea833584861767ee97.png

三、Entity Framwork Core 2.0 MySql Database First

1、新建 【Starts2000.EFCoreDbFirst】 项目

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

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

a12e553e4483fe0c83186e6d122924cd.png

终极内容如下:

3844f2cfe3ea642cfeb38185fc86a0f5.png

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

43521b80acb16bf6b8246886725b6387.png

执行胜利后,项目增加了如下内容:

f676d419c69aba97f1f256e42660d145.png

5、创立 .NET Core 控制台应用项目 【Starts2000.EFDbFirst.Test】进行测试添加对 【Starts2000.EFCoreDbFirst】项目标引用;

把 Main 函数改动为如下代码:

093a254069a2b2a4c8f7d5b8ffe70282.png把【Starts2000.EFCoreDbFirst.Test】项目设置为启动项目,编译运转:

2d466d766c441d3d45df13d2b0c8bc39.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值