(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 正式版,但是其实好多功能还没有完善.比方说编译时的一些文件编码 ...
随机推荐
- jira设置问题关闭之后不能继续编辑和添加备注
设置工作流中的Closed步骤的工作流属性值,增加两个: jira.permission.comment.user:(空) jira.issue.editable:false Closed这个步骤之后 ...
- CAD2014学习笔记-文字编辑与尺寸标注
基于 虎课网huke88.com CAD教程 文字与表格 输入文字:TEXT.MTEXT 插入表格:table 新建表格样式 尺寸标注 测量工具:Di.DLI 开启标注:打开工具-工具栏-标注 对齐/ ...
- I/O:FileLock
FileLock: /* 文件锁定要么是独占的,要么是共享的.共享锁定可阻止其他并发运行的程序获取重叠的 独占锁定,但是允许该程序获取重叠的共享锁定.独占锁定则阻止其他程序获取任一类型的重叠锁 定.一 ...
- BFM使用 - 获取平均脸模型的68个特征点坐标
使用版本:2009 数据说明网址:https://faces.dmi.unibas.ch/bfm/index.php?nav=1-1-0&id=details 数据下载网址:https://f ...
- panic: time: missing Location in call to Time.In
docker容器发布go项目出现以下问题: panic: time: missing Location in call to Time.In COPY --from=build /usr/share/ ...
- 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
- iOS-监听原生H5性能数据window.performance
WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...
- Linux操作系统和Windows操作系统的区别
1.免费与收费 在中国,windows和linux都是免费的,至少对个人用户是如此,如果那天国内windows真的严打盗版了,那linux的春天就到了!但现在linux依然是任重道远,前路漫漫. 2. ...
- linux初学者-系统日志(一)
linux初学者-系统日志(一) 系统日志可以记录系统的运行状态,如果运行故障,会说明错误的位置.所以对系统日志的了解和学习是非常有必要的. 1.系统日志的默认分类 系统日志会默认记录在以下地址中,不 ...
- firewalld防火墙命令规则设置
1.firewalld的基本使用 启动/关闭: systemctl start/stop firewalld 查看状态: systemctl status firewalld 开机启用/禁用 : sy ...