EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型

Posted 又见阿郎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型相关的知识,希望对你有一定的参考价值。

官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1

使用EF CodeFirst在mysql中创建新的数据库,我们首先在appsettings.json文件夹中,使用json对来给出mysql数据库连接语句,其次在
Startup.cs中使用MySql的中间价来注入MySql服务,在这里,我使用的MySql驱动是Pomelo.EntityFramoworkCore.MySql。
新建一个类,用来做数据表的基类,同是派生一个继承自DbContext的数据库上下文类,注意!这个新的数据库上下文一定要有构造函数。
做好之后,使用如下命令创建新的数据库:
首先打开Nuget管理控制台:

Add-Migration xxxx
Update-Database

如果我们就生成了数据库了,还会给我们生成一个Migration的文件夹。当然也可以是cmd窗口,但是命令就不一样了。你自己去看看官方教程就可
以了。


那么如果有了数据库怎么使用DbContext呢?

从现有的MySql数据库中使用DB First来创建数据表模型
第一种方案、
从现有Mysql数据库添加到EF Core,使用 程序包控制台(PM):

Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -O Model

第二种方案(建议使用第二种方案)、

dotnet ef dbcontext scaffold "server=localhost;uid=root;pwd=123456;database=eftests" "Pomelo.EntityFrameworkCore.Mysql" -o Models

项目少还好,如果项目数据库里的表多,建议用此种方式添加已有的数据库









以上是关于EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型的主要内容,如果未能解决你的问题,请参考以下文章

EF Core1.0 CodeFirst为Modell设置默认值!

EF Core CodeFirst

使用EF CodeFirst 同时访问MySql和SqlServer配置

从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之七使用JWT生成Token(个人见解)

EF6 CodeFirst使用MySql

从零开始搭建前后端分离的NetCore(EF Core CodeFirst+Au)+Vue的项目框架之二autofac解耦