菜鸟的问题
好记性不如烂笔头~。~

微软官方文档:https://docs.microsoft.com/zh-cn/ef/core/get-started/aspnetcore/existing-db

1.创建一个core mvc项目

 

2.安装对应的引用包:

-- Mysql数据库版本:

Install-Package MySql.Data.EntityFrameworkCore -Pre
Install-Package Pomelo.EntityFrameworkCore.MySql
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
View Code

-- Sql Server数据库版本:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
View Code

3.同样在NuGet控制台中执行命令:

-- Mysql数据库:

Scaffold-DbContext "server=.;userid=xxx;pwd=xxx;port=3306;database=xxx;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force

或者

Scaffold-DbContext "server=.;userid=xxx;pwd=xxx;port=3306;database=xxx;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force
View Code

-- Sql Server数据库:

// Data Source填写登录数据库时候的服务器名称叭
Scaffold-DbContext "Data Source=DESKTOP-JFK9IBN;Initial Catalog=Blogging;User ID=sa;Password=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
View Code

-- 参数说明:

-OutputDir *** 实体类生成后存放的文件夹

Scaffold-DbContext "Data Source=DESKTOP-JFK9IBN;Initial Catalog=Blogging;User ID=sa;Password=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force


-ContextDir *** DbContext文件存放的目录


-Context *** DbContext文件名


-Schemas *** 需要生成实体数据的数据表所在的模式


-Tables *** 需要生成实体数据的数据表的集合(更新莫个表,有坑慎用吧,要么全部覆盖重新生成,要么手动写吧,加字段之类的)

Scaffold-DbContext "Data Source=DESKTOP-JFK9IBN;Initial Catalog=Blogging;User ID=sa;Password=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -tables Blog


-DataAnnotations


-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)


-Force 强制执行,重写已经存在的实体文件(覆盖当前文件夹下已经存在的实体类)
Scaffold-DbContext "Data Source=DESKTOP-JFK9IBN\YANG;Initial Catalog=Blogging;User ID=sa;Password=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

 

4.可能出现的错误:

Your startup project 'FramewDom' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework 
Core Tools to work. Ensure your startup project is correct, install the 
package, and try again.

错误详情:启动项目缺少这个依赖

解决:
方案①:在对应项目的管理NuGet程序包下重新安装Microsoft.EntityFrameworkCore.Design,重新生成解决方案
方案②:在启动项目里边执行一下这个两个命令
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

成功后在Models文件夹下生成的实体类:

 

5.实体类成功后就能使用EF了,跟着官方文档走就好了

 

posted on 2019-09-04 15:53  ArSang-Blog  阅读(550)  评论(0编辑  收藏  举报