在ASP.NET Core下使用Scaffold-DbContext命令自动从数据库生成EF Core模型

竹林之风1年前 (2020-06-24)技术积累619

        在ASP.NET Core下使用EF Core读取和操作数据库时,若采用DB First开发模式,则需要手动写或者自动生成相关实体类和DBContext类。自动生成可采用Scaffold-DbContext命令。而使用该命令需要在实体类所在项目引用Microsoft.EntityFrameworkCore.Tools包和MySql.Data.EntityFrameworkCore包(MySQL引用该包,其它数据库引用相应的其它对应包)。

(1)在VS菜单中依次点击“视图”/“其它窗口”/“程序包管理控制台”,打开程序包管理控制台:

QQ截图20210507142133.png

(2)在程序包管理控制台中输入如下命令:

QQ截图20210507142652.png

Scaffold-DbContext -Force -Connection "{ConnStr}" -Provider MySql.Data.EntityFrameworkCore -OutputDir . -Context SUSEAluminDbContext -DataAnnotations -UseDatabaseNames

其中{ConnStr}请用数据库连接字符串替换,“默认项目”处请选择要生成实体类的项目。

(3)Scaffold-DbContext数据库上下文脚手架命令格式如下:

Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>] 
[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>] 
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]

参数解释如下:
-Connection <String> 
指定数据库的连接字符串。

-Provider <String> 
指定要使用的提供程序。例如,Sql Server使用Microsoft.EntityFrameworkCore.SqlServer、MySql使用MySql.Data.EntityFrameworkCore等。

-OutputDir <String> 
指定用于输出类的目录。如果省略或使用英文句号,则使用当前项目根目录。

-Context <String> 
指定生成的DbContext类的名称。

-Schemas <String> 
指定要为其生成类的模式,如dbo等。

-Tables <String> 
指定要为其生成类的表,多个表用英文逗号隔开。

-DataAnnotations [<SwitchParameter>] 
使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。

-Force [<SwitchParameter>] 
强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。

-Project <String> 
指定要使用的项目。如果省略,则使用默认项目。

-StartupProject <String> 
指定要使用的启动项目。如果省略,则使用解决方案的启动项目。

-Environment <String> 
指定要使用的环境。如果省略,则默认值为“Development”。

相关文章

AJAX网页如何实现SEO友好

        在WEB网页上应用AJAX技术可以提高用户体验,但是对于SEO却不够友好,因为搜索引擎不会执行JS,而A...

通用基础表逻辑设计(一)——配置、枚举和类别

一、配置表        一个系统中往往有很多需要可自定义的参数,比如网站名称、联系地址等基础参数以及各种系统运行参数等...

Android开发从新手开始(一)——概述

前言        做为一个程序员,不应该将自己限定在自己熟悉的平台和语言上,而也应该多去了解一下其它平台和语言。这样可...

ASP.NET MVC中的Area区域简介

        ASP.NET MVC4有预定义的目录规则,框架根据这些目录规则去加载各种类。在MVC单项目中,随着业务...

小试Git源码版本控制

        我们一个人开发或维护一个项目的时候,一般项目源码放在自己的电脑上就可以了;当加入新成员和我们一起开发或维...

使用Nginx实现简单密码认证

        假设一个网站没有实现登录认证功能,我们要临时增加一个简单的账号密码认证,可以使用Nginx来实现该功能。...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。