(18)ASP.NET Core 基于现有数据库创建EF模型(反向工程)
1.简介
Entity Framework Core可通过数据库提供给应用程序的插件访问许多不同的数据库。我们可以通过使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序,对现有数据库进行反向工程以便创建Entity Framework模型。
2.创建数据库
我们可以通过Visual Studio创建一个数据库再进行演示,步骤如下:
●打开Visual Studio开发工具
●“工具”>“连接到数据库”
●选择“Microsoft SQL Server”(因为我本机是用MSS),然后单击“确定”
●输入“(localdb)\mssqllocaldb”或者“.”作为服务器名称
●选择或输入“master”作为数据库名称,然后单击“确定”
●master数据库现在显示在“服务器资源管理器”的“数据连接”中
●右键单击“服务器资源管理器”中的数据库,然后选择“新建查询”
●将下列脚本复制到查询编辑器中:
CREATE DATABASE [Blogging];
GO
USE [Blogging];
GO
CREATE TABLE [Blog] (
[BlogId] int NOT NULL IDENTITY,
[Url] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId])
);
GO
CREATE TABLE [Post] (
[PostId] int NOT NULL IDENTITY,
[BlogId] int NOT NULL,
[Content] nvarchar(max),
[Title] nvarchar(max),
CONSTRAINT [PK_Post] PRIMARY KEY ([PostId]),
CONSTRAINT [FK_Post_Blog_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [Blog] ([BlogId]) ON DELETE CASCADE
);
GO
INSERT INTO [Blog] (Url) VALUES
('http://blogs.msdn.com/dotnet'),
('http://blogs.msdn.com/webdev'),
('http://blogs.msdn.com/visualstudio')
GO
●点击Execute按钮或者敲击Ctrl+Shift+E执行T-SQL查询

创建数据库成功。
3.对模型实施反向工程
3.1反向工程
什么是反向工程?反向工程开始时会读取链接数据库的架构,它将读取有关表、列、约束和索引的信息。接下来,它使用的架构信息创建EF Core模型。使用表来创建实体类型;使用列来创建属性;外键用于创建关系。最后,从你的应用程序中搭建实体类型的类Fluent API和数据批注和重新创建相同的模型。
3.2基于现有数据库创建EF模型
当我们在PowerShell运行以下命令从现有数据库创建模型时候,会提示如下错误:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

关于程序包管理器不支持PowerShell 2.0版本问题,解决方法如下:
●打开https://www.microsoft.com/zh-CN/download/details.aspx?id=40855链接地址
●选择Windows6.1-KB2819745-x64-MultiPkg.msu安装升级版本

现在我们再在PowerShell运行以下命令看看:

从现有数据库创建EF模型成功。
4.创建控制器和视图
从现有数据库创建EF模型之后,我们可以通过创建控制器和视图增删改数据。可以通过以下步骤创建控制器跟视图:
●在“解决方案资源管理器”中,右键单击“控制器”文件夹,然后选择“添加”>“控制器”
●选择“视图使用 Entity Framework的MVC控制器”,然后单击“添加”
●将“模型类”设置为“Blog”,将“数据上下文类”设置为“BloggingContext”单击“添加”


参考文献:
通过现有数据库在ASP.NET Core上开始使用EF Core
反向工程
(18)ASP.NET Core 基于现有数据库创建EF模型(反向工程)的更多相关文章
- ASP.NET Core 基于JWT的认证(二)
ASP.NET Core 基于JWT的认证(二) 上一节我们对 Jwt 的一些基础知识进行了一个简单的介绍,这一节我们将详细的讲解,本次我们将详细的介绍一下 Jwt在 .Net Core 上的实际运用 ...
- ASP.NET Core 基于JWT的认证(一)
ASP.NET Core 基于JWT的认证(一) Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计 ...
- Asp.Net Core基于JWT认证的数据接口网关Demo
近日,应一位朋友的邀请写了个Asp.Net Core基于JWT认证的数据接口网关Demo.朋友自己开了个公司,接到的一个升级项目,客户要求用Aps.Net Core做数据网关服务且基于JWT认证实现对 ...
- Asp.Net Core 使用 Sqlite 数据库
在Asp.Net Core 使用 Sqlite 数据库 在Asp.Net Core(5.0)项目中使用Sqlite数据库的设置, 1,创建新web项目 2,安装下面的依赖包 Install-Packa ...
- ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core
前言 原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identi ...
- ASP.NET Core基于K8S的微服务电商案例实践--学习笔记
摘要 一个完整的电商项目微服务的实践过程,从选型.业务设计.架构设计到开发过程管理.以及上线运维的完整过程总结与剖析. 讲师介绍 产品需求介绍 纯线上商城 线上线下一体化 跨行业 跨商业模式 从0开始 ...
- VS2012、2013使用Mysql数据库创建EF的AOD.NET实体模型
VS2012.2013使用Mysql数据库创建EF的AOD.NET实体模型: 1.关闭VS,首先安装mysql-connector-net-6.8.3.(安装后EF创建实体模型时就可以找到Mysql的 ...
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- Asp.net Core基于MVC框架实现PostgreSQL操作
简单介绍 Asp.net Core最大的价值在于跨平台.跨平台.跨平台.重要的事情说三遍.但是目前毕竟是在开发初期,虽然推出了1.0.0 正式版,但是其实好多功能还没有完善.比方说编译时的一些文件编码 ...
随机推荐
- .net持续集成cake篇之cake介绍及简单示例
cake介绍 Cake 是.net平台下的一款自动化构建工具,可以完成对.net项目的编译,打包,运行单元测试,集成测试甚至发布项目等等.如果有些特征Cake没有实现,我们还可以很容易地通过扩展Cak ...
- 缓存实践Cache Aside Pattern
Cache Aside Pattern旁路缓存,是对缓存应用的一个总结,包括读数据方案和写数据方案. 读数据方案 先读cache,如果命中则返回 如果miss则读db 将db的数据存入缓存 写数据方案 ...
- 1.jdk1.7到jdk1.8 Map发生了什么变化(底层)?
1.8之后hashMap的数据结构发生了变化,从之前的单纯的数组+链表结构变成数组+链表+红黑树.也就是说在JVM存储hashMap的K-V时仅仅通过key来决定每一个entry的存储槽位(Node[ ...
- 【基础算法-模拟-例题-金币】-C++
原题链接:P2669 金币 这道题目完全是一道模拟题,只要按照题目中的加金币的算法和sum累加就可以很轻易得出最终答案. 说一下有一些点需要注意: 1.用i来计每天发的金币数,n来计已经拿了金币的天数 ...
- spring mvc 拦截器的使用
Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志 ...
- 【Go】类似csv的数据日志组件设计
原文链接:https://blog.thinkeridea.com/201907/go/csv_like_data_logs.html 我们业务每天需要记录大量的日志数据,且这些数据十分重要,它们是公 ...
- android值类型转换
各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型. 字符串型转换成各种数字类型: String s = & ...
- python面向过程编程小程序- 模拟超市收银系统
6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...
- JAVA环境+eclipse+tomcat+maven配置
1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ----------------- ...
- 手把手教你破解文件密码、wifi密码、网页密码
手把手教你破解文件密码.wifi密码.网页密码 1.破解文件密码: 有时候我们在网上下载一个压缩包后,必须要关注或者支付一定费用才给你解压密码,实属比较恶心.在这里手把手叫你实现破解文件解压密码. 1 ...