ASP.NET?Core基于現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型
1.簡(jiǎn)介
Entity Framework Core可通過(guò)數(shù)據(jù)庫(kù)提供給應(yīng)用程序的插件訪問(wèn)許多不同的數(shù)據(jù)庫(kù)。我們可以通過(guò)使用Entity Framework Core構(gòu)建執(zhí)行基本數(shù)據(jù)訪問(wèn)的ASP.NET Core MVC應(yīng)用程序,對(duì)現(xiàn)有數(shù)據(jù)庫(kù)進(jìn)行反向工程以便創(chuàng)建Entity Framework模型。
2.創(chuàng)建數(shù)據(jù)庫(kù)
我們可以通過(guò)Visual Studio創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)再進(jìn)行演示,步驟如下:
●打開(kāi)Visual Studio開(kāi)發(fā)工具
●“工具”>“連接到數(shù)據(jù)庫(kù)”
●選擇“Microsoft SQL Server”(因?yàn)槲冶緳C(jī)是用MSS),然后單擊“確定”
●輸入“(localdb)\mssqllocaldb”或者“.”作為服務(wù)器名稱(chēng)
●選擇或輸入“master”作為數(shù)據(jù)庫(kù)名稱(chēng),然后單擊“確定”
●master數(shù)據(jù)庫(kù)現(xiàn)在顯示在“服務(wù)器資源管理器”的“數(shù)據(jù)連接”中
●右鍵單擊“服務(wù)器資源管理器”中的數(shù)據(jù)庫(kù),然后選擇“新建查詢(xún)”
●將下列腳本復(fù)制到查詢(xún)編輯器中:
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●點(diǎn)擊Execute按鈕或者敲擊Ctrl+Shift+E執(zhí)行T-SQL查詢(xún)

創(chuàng)建數(shù)據(jù)庫(kù)成功。
3.對(duì)模型實(shí)施反向工程
3.1反向工程
什么是反向工程?反向工程開(kāi)始時(shí)會(huì)讀取鏈接數(shù)據(jù)庫(kù)的架構(gòu),它將讀取有關(guān)表、列、約束和索引的信息。接下來(lái),它使用的架構(gòu)信息創(chuàng)建EF Core模型。使用表來(lái)創(chuàng)建實(shí)體類(lèi)型;使用列來(lái)創(chuàng)建屬性;外鍵用于創(chuàng)建關(guān)系。最后,從你的應(yīng)用程序中搭建實(shí)體類(lèi)型的類(lèi)Fluent API和數(shù)據(jù)批注和重新創(chuàng)建相同的模型。
3.2基于現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型
當(dāng)我們?cè)赑owerShell運(yùn)行以下命令從現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建模型時(shí)候,會(huì)提示如下錯(cuò)誤:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

關(guān)于程序包管理器不支持PowerShell 2.0版本問(wèn)題,解決方法如下:
●打開(kāi)https://www.microsoft.com/zh-CN/download/details.aspx?id=40855鏈接地址
●選擇Windows6.1-KB2819745-x64-MultiPkg.msu安裝升級(jí)版本

現(xiàn)在我們?cè)僭赑owerShell運(yùn)行以下命令看看:


從現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型成功。
4.創(chuàng)建控制器和視圖
從現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型之后,我們可以通過(guò)創(chuàng)建控制器和視圖增刪改數(shù)據(jù)??梢酝ㄟ^(guò)以下步驟創(chuàng)建控制器跟視圖:
●在“解決方案資源管理器”中,右鍵單擊“控制器”文件夾,然后選擇“添加”>“控制器”
●選擇“視圖使用 Entity Framework的MVC控制器”,然后單擊“添加”
●將“模型類(lèi)”設(shè)置為“Blog”,將“數(shù)據(jù)上下文類(lèi)”設(shè)置為“BloggingContext”單擊“添加”



到此這篇關(guān)于ASP.NET Core基于現(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建EF模型的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET?Core使用EF查詢(xún)數(shù)據(jù)
- ASP.NET?Core使用EF為關(guān)系數(shù)據(jù)庫(kù)建模
- ASP.NET?Core使用EF創(chuàng)建模型(索引、備用鍵、繼承、支持字段)
- ASP.NET?Core使用EF創(chuàng)建關(guān)系模型
- ASP.NET Core使用EF創(chuàng)建模型(必需和可選屬性、最大長(zhǎng)度、并發(fā)標(biāo)記、陰影屬性)
- ASP.NET?Core使用EF創(chuàng)建模型(包含屬性、排除屬性、主鍵和生成值)
- EF?Core通過(guò)顯式編譯提高查詢(xún)性能
- ASP.NET Core使用EF保存數(shù)據(jù)、級(jí)聯(lián)刪除和事務(wù)使用
相關(guān)文章
在Code First模式中自動(dòng)創(chuàng)建Entity模型
這篇文章介紹了在Code First模式中自動(dòng)創(chuàng)建Entity模型的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
在.Net?Framework應(yīng)用中請(qǐng)求HTTP2站點(diǎn)的問(wèn)題解析
隨著各大瀏覽器支持和蘋(píng)果的帶頭效應(yīng),HTTP2的應(yīng)用會(huì)越來(lái)越廣泛,但是規(guī)模龐大的.NET?Framework應(yīng)用卻也不能為了連接HTTP2就升級(jí)到NET?Core平臺(tái)。通過(guò)本文提供的方案,可以最小成本的實(shí)現(xiàn).NET?Framework應(yīng)用成功訪問(wèn)HTTP2站點(diǎn),感興趣的朋友跟隨小編一起看看吧2022-07-07
ASP.NET編譯執(zhí)行常見(jiàn)錯(cuò)誤及解決方法匯總
ASP.NET編譯執(zhí)行常見(jiàn)錯(cuò)誤及解決方法匯總,開(kāi)發(fā)asp.net的朋友可以參考下。方便以后解決一些錯(cuò)誤。2011-12-12
.NET Core 2.0如何生成圖片驗(yàn)證碼完整實(shí)例
這篇文章主要給大家介紹了關(guān)于.NET Core 2.0如何生成圖片驗(yàn)證碼的相關(guān)資料,該功能主要是利用ZKWeb.System.Drawing來(lái)實(shí)現(xiàn),文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
ASP.NET MVC3 SEO優(yōu)化:利用Routing特性提高站點(diǎn)權(quán)重
這篇文章主要介紹了ASP.NET MVC3 SEO優(yōu)化:利用Routing特性消除多個(gè)路徑指向同一個(gè)Action,從而提高站點(diǎn)權(quán)重,需要的朋友可以參考下。2016-06-06
.Net之微信小程序獲取用戶(hù)UnionID的實(shí)現(xiàn)
這篇文章主要介紹了.Net之微信小程序獲取用戶(hù)UnionID的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
.Net Core創(chuàng)建Api進(jìn)行文件上傳功能
這篇文章主要介紹了.Net Core創(chuàng)建Api進(jìn)行文件上傳,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

