翻譯|使用教程|編輯:陳津勇|2019-09-06 10:40:11.220|閱讀 1462 次
概述:本文介紹了如何使用ASP.NET Core 3.0開發Web應用程序,使用Entity Framework Core 3.0命令將其連接到數據庫(數據庫優先),并使用scaffolding執行CRUD操作(代碼生成器)。通過系列操作,開發一個帶有基本操作的庫存管理示例應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Essential Studio for ASP.NET Core是Microsoft的Web框架,它是一個開源、跨平臺、云優化的Web框架,運行在使用.NET Framework和.NET Core的Windows以及使用.NET Core的其他平臺上。它是一個完整的重寫,它將ASP.NET MVC和Web API整合到一個編程模型中,并刪除與系統相關的依賴項。這有助于將應用程序部署到非Windows服務器并提高性能。
本文將討論以下內容:
先決條件
數據庫創建
創建一個ASP.NET核心應用程序
安裝必要的NuGet包
將應用程序連接到數據
Scaffold CRUD操作
運行應用程序
結論
注:在此演示應用程序中,使用了ASP.NET Core 3.0預覽8、Entity Framework Core 3.0預覽8,與Visual Studio 2019v16.3.0預覽2.0。 |
點擊下載Essential Studio for ASP.NET Core試用版
先決條件
可以使用以下IDE開發.NET Core應用程序:
Command Prompt
在這里,使用Visual Studio來構建應用程序。請確定依據安裝了以下必要的軟件:
NET Core 3.0預覽8
創建數據庫
讓我們在本地SQL Server上創建一個數據庫。希望您的機器已經安裝了SQL Server 2017(也可以使用SQL Server 2008、2012、2016)。
第1步:打開Visual Studio 2019。
步驟2:打開SQL Server對象資源管理器,然后單擊“添加SQL Server”。
△ 添加SQL Server
步驟3:在這里,我們可以選擇從本地計算機的SQL Server(通過網絡連接)和Azure SQL數據庫中進行選擇。本文選擇了本地SQL Server實例。在提供了SQL Server詳細信息后,單擊“連接”,SQL Server將在資源管理器中列出。
△ 建立與數據庫服務器的連接
△ 解決方案資源管理器中列出的SQL
步驟4:右鍵單擊數據庫節點并創建一個新數據庫(Inventory)。
第5步:現在有了數據庫,單擊數據庫并選擇New Query。
步驟6:對于此應用程序,將創建一個名為Products的表,其中包含基本屬性??蓪⒁韵耂QL查詢粘貼到“查詢”窗口以創建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:單擊“運行”圖標以創建表?,F在有了應用程序所需的表。
創建一個ASP.NET核心應用程序
請按照以下步驟創建ASP.NET Core應用程序。
步驟1:在Visual Studio 2019中,單擊文件->新建->項目。
第2步:選擇“創建新項目”選項。
步驟3:選擇ASP.NET Core Web Application模板。
步驟4:輸入項目名稱,然后單擊“創建”。
步驟5:選擇.NET Core和ASP.NET Core 3.0,然后選擇Web應用程序(模型-視圖-控制器)模板。
取消選中Advanced選項下的HTTPS配置(在開發環境中,不需要SSL)。
點擊創建。然后將使用此項目結構創建示例ASP.NET Core應用程序。
安裝NuGet包
應該添加以下NuGet包來使用SQL Server數據庫和腳手架。在包管理器控制臺運行以下命令:
安裝包Microsoft.VisualStudio.Web.CodeGeneration.Design-Version 3.0.0-preview8-19413-06。此包有助于生成控制器和視圖。
安裝包Microsoft.EntityFrameworkCore.Tools -Version 3.0.0-preview8.19405.11。此包有助于從數據庫創建數據庫上下文和模型類。
安裝包Microsoft.EntityFrameworkCore.SqlServer -Version 3.0.0-preview8.19405.11。數據庫提供程序允許Entity Framework Core與SQL Server一起使用。
Scaffolding
SP.NET Core有一個名為scaffolding的功能,它使用T4模板生成常用功能代碼,以幫助開發人員編寫重復代碼。我們使用scaffolding執行以下操作:
生成實體POCO類和數據庫的上下文類。
使用包含控制器和視圖的Entity Framework Core為數據庫模型的創建、讀取、更新和刪除(CRUD)操作生成代碼。
連接應用程序和數據庫
在程序包管理器控制臺中運行以下scaffold命令以對數據庫進行反向工程,以從表中創建數據庫上下文和實體POCO類。scaffold命令僅為具有主鍵的表創建POCO類。
Scaffold-DbContext“Server = ABCSERVER; Database = Inventory; Integrated Security = True”Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models |
連接-設置數據庫的連接字符串。
Provider-設置用于連接數據庫的提供程序。
OutputDir-設置要生成POCO類的目錄。
在我們的示例中,將創建Products類和Inventory上下文類。
打開Inventory Context類文件。您將在OnConfiguring方法中看到數據庫憑據是硬編碼的。
考慮到安全問題,在C#類中使用SQL Server憑據并不是一種好習慣。因此,從上下文文件中刪除此OnConfiguring方法。
并將連接字符串移動到appsettings.json文件。
然后我們可以在應用程序啟動期間注冊數據庫上下文服務(InventotyContext)。在以下代碼中,從appsettings文件中讀取連接字符串并將其傳遞給上下文服務。
然后通過依賴注入向所述控制器注入所需的控制器。
執行CRUD操作
現在我們設置數據庫并將其配置為與Entity Framework Core一起使用。我們將看到如何執行CRUD操作。
右鍵單擊控制器文件夾,選擇“添加新項”,然后選擇“ 控制器”。然后將顯示此對話框。
使用Entity Framework選項選擇帶視圖的MVC Controller,然后單擊Add。
我們需要選擇之前創建的數據庫模型類和數據上下文類,然后單擊“添加”。
就是這樣就完成了。scaffolding引擎使用T4模板為各自的文件夾中的控制器操作和視圖生成代碼。這是代碼的基本版本,我們可以根據需要修改它。
請找到創建的文件:
現在我們在Products表上有完整功能的CRUD操作。
然后,更改默認應用程序路由以加載Products Controller而不是home控制器。打開Startup.cs文件,在Configure方法下,將默認控制器更改為Products。
在scaffolding引擎的幫助下,開發人員無需為每個數據庫模型編寫CRUD操作。
運行應用程序
單擊“運行”以查看應用程序。將打開一個新的瀏覽器選項卡,我們將能夠看到產品列表頁面。由于庫存中沒有產品,因此它是空的。
單擊“新建”以將新產品添加到清單中。
輸入詳細信息后,單擊“創建”?,F在我們應該在列表頁面中看到新創建的產品,如下面的屏幕截圖所示。已經添加了三個產品。
單擊詳細信息以查看產品詳細信息。
單擊編輯以更新產品詳細信息。
單擊“刪除”以刪除產品。在從數據庫中刪除之前,將要求確認。
無需編寫任何代碼,我們就可以在scaffolding引擎的幫助下創建一個具有基本CRUD操作的應用程序。
點擊查看示例應用程序。提取應用程序,更改appsettings.json文件中指向SQL Server的連接字符串,然后運行該應用程序。
結論
在本文中,我們學習了如何創建ASP.NET Core應用程序并將其連接到數據庫,以使用Entity Framework Core 3.0和代碼生成工具執行基本的CRUD操作。
Essential Studio for ASP.NET Core控件庫是構建應用程序所需的惟一套件,因為它在一個包中包含超過65個高性能、輕量級、模塊化和響應性強的UI控件。歡迎下載試用版體驗哦~
想要獲得Essential Studio for ASP.NET Core更多資源的伙伴,請點這里。
想要獲取Essential Studio for ASP.NET Core正版授權的伙伴,
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: