900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程

idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程

时间:2023-12-17 09:34:33

相关推荐

idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程

一.概述

在上篇中使用EF基于数据模型创建数据库, 本篇继续使用 EF 基于数据库创建数据模型。 实现对已有数据库进行反向工程,来构建数据访问的 Core MVC 应用程序。已有数据库使用上篇的EFGetStarted.AspNetCore.NewDb库。这里还是使用Visual Studio 和sql server 来演示。

1.1 创建新项目

打开 Visual Studio

“文件”>“新建”>“项目...”

从左菜单中选择“已安装”>“Visual C#”>“Web”。

选择“ Core Web 应用程序”项目模板

输入 EFGetStarted.AspNetCore.ExistingDb 作为名称(它必须完全匹配稍后在代码中使用的命名空间),再单击“确定”

等待“新建 Core Web 应用程序”对话框显示出来

确保目标框架下拉列表设置为 .NET Core,版本下拉列表设置为 Core 2.2

选择“Web 应用程序(模型视图控制器)”模板

确保将“身份验证”设置为“无身份验证”

单击“确定”

1.2 安装 Entity Framework Core

安装方法上篇以有介绍。 PM> install-package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.0

1.3 对模型实施反向工程

基于现有数据库创建 EF 模型,选择“工具”–>“NuGet 包管理器”–>“包管理器控制台”。 运行以下命令(一条命令,排版是二行):

PM> Scaffold-DbContext "Data Source ={ip};Initial Catalog = EFGetStarted.AspNetCore.NewDb; User ID = hsr;Password =js*;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

可以通过将 -Tables 参数添加到上述命令来指定要为哪些表生成实体, 例如 -Tables Blogs,Posts。反向工程过程基于现有数据库的架构创建实体类 (Blogs.cs & Posts.cs) 和派生上下文 (EFGetStartedAspNetCoreNewDbContext.cs),上下文表示与数据库的会话,并允许查询和保存实体类的实例。命令自动生成如下实体类:

1.4 通过依赖关系注入注册上下文

在 Startup.cs 中注册并配置上下文。这里实现与上一篇一样。通过AddDbContext(...) 方法将EF上下文注册为服务。

1.5 创建控制器和视图

创建BlogsController控制器,在Index方法中读出数据,在视图Blogs/index下显示。

在Blogs控制器的index中,通过EF查询出Blogs集合,通过View 重载方法返回一个集合对象 View(blogs), 在Blogs/index页,声明一个IList泛型对象,约定将自动把返回的数据映射到index页面的泛型对象上。如下所示:

参考文献:

官方资料: Core 现有数据库

欢迎添加个人微信号:Like若所思。

欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。