翻譯|使用教程|編輯:陳津勇|2019-09-06 10:40:11.220|閱讀 1478 次
概述:本文介紹了如何使用ASP.NET Core 3.0開(kāi)發(fā)Web應(yīng)用程序,使用Entity Framework Core 3.0命令將其連接到數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)優(yōu)先),并使用scaffolding執(zhí)行CRUD操作(代碼生成器)。通過(guò)系列操作,開(kāi)發(fā)一個(gè)帶有基本操作的庫(kù)存管理示例應(yīng)用程序。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
Essential Studio for ASP.NET Core是Microsoft的Web框架,它是一個(gè)開(kāi)源、跨平臺(tái)、云優(yōu)化的Web框架,運(yùn)行在使用.NET Framework和.NET Core的Windows以及使用.NET Core的其他平臺(tái)上。它是一個(gè)完整的重寫(xiě),它將ASP.NET MVC和Web API整合到一個(gè)編程模型中,并刪除與系統(tǒng)相關(guān)的依賴(lài)項(xiàng)。這有助于將應(yīng)用程序部署到非Windows服務(wù)器并提高性能。
本文將討論以下內(nèi)容:
先決條件
數(shù)據(jù)庫(kù)創(chuàng)建
創(chuàng)建一個(gè)ASP.NET核心應(yīng)用程序
安裝必要的NuGet包
將應(yīng)用程序連接到數(shù)據(jù)
Scaffold CRUD操作
運(yùn)行應(yīng)用程序
結(jié)論
| 注:在此演示應(yīng)用程序中,使用了ASP.NET Core 3.0預(yù)覽8、Entity Framework Core 3.0預(yù)覽8,與Visual Studio 2019v16.3.0預(yù)覽2.0。 | 
點(diǎn)擊下載Essential Studio for ASP.NET Core試用版
先決條件
可以使用以下IDE開(kāi)發(fā).NET Core應(yīng)用程序:
Command Prompt
在這里,使用Visual Studio來(lái)構(gòu)建應(yīng)用程序。請(qǐng)確定依據(jù)安裝了以下必要的軟件:
NET Core 3.0預(yù)覽8
創(chuàng)建數(shù)據(jù)庫(kù)
讓我們?cè)诒镜豐QL Server上創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。希望您的機(jī)器已經(jīng)安裝了SQL Server 2017(也可以使用SQL Server 2008、2012、2016)。
第1步:打開(kāi)Visual Studio 2019。
步驟2:打開(kāi)SQL Server對(duì)象資源管理器,然后單擊“添加SQL Server”。

△ 添加SQL Server
步驟3:在這里,我們可以選擇從本地計(jì)算機(jī)的SQL Server(通過(guò)網(wǎng)絡(luò)連接)和Azure SQL數(shù)據(jù)庫(kù)中進(jìn)行選擇。本文選擇了本地SQL Server實(shí)例。在提供了SQL Server詳細(xì)信息后,單擊“連接”,SQL Server將在資源管理器中列出。

△ 建立與數(shù)據(jù)庫(kù)服務(wù)器的連接

△ 解決方案資源管理器中列出的SQL
步驟4:右鍵單擊數(shù)據(jù)庫(kù)節(jié)點(diǎn)并創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)(Inventory)。
第5步:現(xiàn)在有了數(shù)據(jù)庫(kù),單擊數(shù)據(jù)庫(kù)并選擇New Query。
步驟6:對(duì)于此應(yīng)用程序,將創(chuàng)建一個(gè)名為Products的表,其中包含基本屬性。可將以下SQL查詢(xún)粘貼到“查詢(xún)”窗口以創(chuàng)建Products表。
Create Table Products(ProductId BigInt Identity(1,1) Primary Key,Name Varchar(100) Not Null,Category Varchar(100),Color Varchar(20),UnitPrice Decimal Not Null,AvailableQuantity BigInt Not Null,CratedDate DateTime Default(GetDate()) Not null)
步驟7:?jiǎn)螕簟斑\(yùn)行”圖標(biāo)以創(chuàng)建表。現(xiàn)在有了應(yīng)用程序所需的表。
創(chuàng)建一個(gè)ASP.NET核心應(yīng)用程序
請(qǐng)按照以下步驟創(chuàng)建ASP.NET Core應(yīng)用程序。
步驟1:在Visual Studio 2019中,單擊文件->新建->項(xiàng)目。
第2步:選擇“創(chuàng)建新項(xiàng)目”選項(xiàng)。
步驟3:選擇ASP.NET Core Web Application模板。

步驟4:輸入項(xiàng)目名稱(chēng),然后單擊“創(chuàng)建”。

步驟5:選擇.NET Core和ASP.NET Core 3.0,然后選擇Web應(yīng)用程序(模型-視圖-控制器)模板。
取消選中Advanced選項(xiàng)下的HTTPS配置(在開(kāi)發(fā)環(huán)境中,不需要SSL)。
點(diǎn)擊創(chuàng)建。然后將使用此項(xiàng)目結(jié)構(gòu)創(chuàng)建示例ASP.NET Core應(yīng)用程序。

安裝NuGet包
應(yīng)該添加以下NuGet包來(lái)使用SQL Server數(shù)據(jù)庫(kù)和腳手架。在包管理器控制臺(tái)運(yùn)行以下命令:
安裝包Microsoft.VisualStudio.Web.CodeGeneration.Design-Version 3.0.0-preview8-19413-06。此包有助于生成控制器和視圖。
安裝包Microsoft.EntityFrameworkCore.Tools -Version 3.0.0-preview8.19405.11。此包有助于從數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)上下文和模型類(lèi)。
安裝包Microsoft.EntityFrameworkCore.SqlServer -Version 3.0.0-preview8.19405.11。數(shù)據(jù)庫(kù)提供程序允許Entity Framework Core與SQL Server一起使用。
Scaffolding
SP.NET Core有一個(gè)名為scaffolding的功能,它使用T4模板生成常用功能代碼,以幫助開(kāi)發(fā)人員編寫(xiě)重復(fù)代碼。我們使用scaffolding執(zhí)行以下操作:
生成實(shí)體POCO類(lèi)和數(shù)據(jù)庫(kù)的上下文類(lèi)。
使用包含控制器和視圖的Entity Framework Core為數(shù)據(jù)庫(kù)模型的創(chuàng)建、讀取、更新和刪除(CRUD)操作生成代碼。
連接應(yīng)用程序和數(shù)據(jù)庫(kù)
在程序包管理器控制臺(tái)中運(yùn)行以下scaffold命令以對(duì)數(shù)據(jù)庫(kù)進(jìn)行反向工程,以從表中創(chuàng)建數(shù)據(jù)庫(kù)上下文和實(shí)體POCO類(lèi)。scaffold命令僅為具有主鍵的表創(chuàng)建POCO類(lèi)。
| Scaffold-DbContext“Server = ABCSERVER; Database = Inventory; Integrated Security = True”Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models | 
連接-設(shè)置數(shù)據(jù)庫(kù)的連接字符串。
Provider-設(shè)置用于連接數(shù)據(jù)庫(kù)的提供程序。
OutputDir-設(shè)置要生成POCO類(lèi)的目錄。
在我們的示例中,將創(chuàng)建Products類(lèi)和Inventory上下文類(lèi)。

打開(kāi)Inventory Context類(lèi)文件。您將在OnConfiguring方法中看到數(shù)據(jù)庫(kù)憑據(jù)是硬編碼的。
考慮到安全問(wèn)題,在C#類(lèi)中使用SQL Server憑據(jù)并不是一種好習(xí)慣。因此,從上下文文件中刪除此OnConfiguring方法。

并將連接字符串移動(dòng)到appsettings.json文件。

然后我們可以在應(yīng)用程序啟動(dòng)期間注冊(cè)數(shù)據(jù)庫(kù)上下文服務(wù)(InventotyContext)。在以下代碼中,從appsettings文件中讀取連接字符串并將其傳遞給上下文服務(wù)。

然后通過(guò)依賴(lài)注入向所述控制器注入所需的控制器。
執(zhí)行CRUD操作
現(xiàn)在我們?cè)O(shè)置數(shù)據(jù)庫(kù)并將其配置為與Entity Framework Core一起使用。我們將看到如何執(zhí)行CRUD操作。
右鍵單擊控制器文件夾,選擇“添加新項(xiàng)”,然后選擇“ 控制器”。然后將顯示此對(duì)話框。

使用Entity Framework選項(xiàng)選擇帶視圖的MVC Controller,然后單擊Add。
我們需要選擇之前創(chuàng)建的數(shù)據(jù)庫(kù)模型類(lèi)和數(shù)據(jù)上下文類(lèi),然后單擊“添加”。

就是這樣就完成了。scaffolding引擎使用T4模板為各自的文件夾中的控制器操作和視圖生成代碼。這是代碼的基本版本,我們可以根據(jù)需要修改它。
請(qǐng)找到創(chuàng)建的文件:

現(xiàn)在我們?cè)赑roducts表上有完整功能的CRUD操作。
然后,更改默認(rèn)應(yīng)用程序路由以加載Products Controller而不是home控制器。打開(kāi)Startup.cs文件,在Configure方法下,將默認(rèn)控制器更改為Products。

在scaffolding引擎的幫助下,開(kāi)發(fā)人員無(wú)需為每個(gè)數(shù)據(jù)庫(kù)模型編寫(xiě)CRUD操作。
運(yùn)行應(yīng)用程序
單擊“運(yùn)行”以查看應(yīng)用程序。將打開(kāi)一個(gè)新的瀏覽器選項(xiàng)卡,我們將能夠看到產(chǎn)品列表頁(yè)面。由于庫(kù)存中沒(méi)有產(chǎn)品,因此它是空的。

單擊“新建”以將新產(chǎn)品添加到清單中。

輸入詳細(xì)信息后,單擊“創(chuàng)建”。現(xiàn)在我們應(yīng)該在列表頁(yè)面中看到新創(chuàng)建的產(chǎn)品,如下面的屏幕截圖所示。已經(jīng)添加了三個(gè)產(chǎn)品。

單擊詳細(xì)信息以查看產(chǎn)品詳細(xì)信息。

單擊編輯以更新產(chǎn)品詳細(xì)信息。

單擊“刪除”以刪除產(chǎn)品。在從數(shù)據(jù)庫(kù)中刪除之前,將要求確認(rèn)。

無(wú)需編寫(xiě)任何代碼,我們就可以在scaffolding引擎的幫助下創(chuàng)建一個(gè)具有基本CRUD操作的應(yīng)用程序。
點(diǎn)擊查看示例應(yīng)用程序。提取應(yīng)用程序,更改appsettings.json文件中指向SQL Server的連接字符串,然后運(yùn)行該應(yīng)用程序。
結(jié)論
在本文中,我們學(xué)習(xí)了如何創(chuàng)建ASP.NET Core應(yīng)用程序并將其連接到數(shù)據(jù)庫(kù),以使用Entity Framework Core 3.0和代碼生成工具執(zhí)行基本的CRUD操作。
Essential Studio for ASP.NET Core控件庫(kù)是構(gòu)建應(yīng)用程序所需的惟一套件,因?yàn)樗谝粋€(gè)包中包含超過(guò)65個(gè)高性能、輕量級(jí)、模塊化和響應(yīng)性強(qiáng)的UI控件。歡迎下載試用版體驗(yàn)哦~
想要獲得Essential Studio for ASP.NET Core更多資源的伙伴,請(qǐng)點(diǎn)這里。
想要獲取Essential Studio for ASP.NET Core正版授權(quán)的伙伴,
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: