(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),然後單擊“確定”
●選擇或輸入“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
反向