Visual Studio 2019教程:使用Entity Framework處理數(shù)據(jù)
請按照以下步驟開始在ASP.NET Core Web App中使用Entity Framework Core處理數(shù)據(jù)。
點擊下方圖片觀看視頻,然后繼續(xù)向第一個ASP.NET Core應(yīng)用添加數(shù)據(jù)。
Visual Studio 2019教程:使用Entity Framework處理數(shù)據(jù)
打開項目
如果您要跟著視頻一起學(xué)習(xí),請打開在上一節(jié)中創(chuàng)建的Web應(yīng)用程序項目。如果您從本節(jié)開始,則需要創(chuàng)建一個新項目,然后選擇ASP.NET Web Application和Web Application,并將其余選項保留為默認(rèn)值。
添加模型
在ASP.NET Core應(yīng)用程序中使用數(shù)據(jù)時,要做的第一件事是描述數(shù)據(jù)的外觀。我們稱其為要解決的問題所涉及的事物的模型。在現(xiàn)實世界的應(yīng)用程序中,我們將向這些模型添加自定義業(yè)務(wù)邏輯,讓它們以某些方式運(yùn)行并自動化任務(wù)。對于此示例,我們將創(chuàng)建一個用于跟蹤棋盤游戲的簡單系統(tǒng)。需要一個代表游戲的類,并包含一些想要記錄的有關(guān)該游戲的屬性,例如它可以支持多少玩家。此類將進(jìn)入一個新文件夾,該文件夾將在Web項目的根目錄中創(chuàng)建,命名為Models。
public class Game { public int Id { get; set; } public string Title { get; set; } public int PublicationYear { get; set; } public int MinimumPlayers { get; set; } public int MaximumPlayers { get; set; } }
創(chuàng)建頁面來管理游戲庫
現(xiàn)在,準(zhǔn)備創(chuàng)建用于管理游戲庫的頁面,這個過程其實非常簡單。首先,我們需要確定該功能在應(yīng)用程序中的位置,打開Web項目中的Pages文件夾,然后在其中添加一個新文件夾,命名為Games。
現(xiàn)在,右鍵單擊“Games”,然后選擇Add > New Scaffolded Item。選擇Entity Framework (CRUD) 選項。CRUD代表“創(chuàng)建、讀取、更新、刪除”,此模板將為每個操作創(chuàng)建頁面(包括“l(fā)ist all”頁面和“view details of one item”頁面)。
選擇游戲模型類,然后使用“+”圖標(biāo)添加新的數(shù)據(jù)上下文類,命名為AppDbContext。將其余的保留為默認(rèn)值,然后單擊添加。
您將看到以下“Razor Pages”添加到“Games”文件夾中:
Create.cshtml
Delete.cshtml
Details.cshtml
Edit.cshtml
Index.cshtml
除了在Games文件夾中添加頁面之外,scaffolding操作還向Startup.cs類添加了代碼。ConfigureServices查看此類中的方法時,將看到已添加以下代碼:
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("AppDbContext")));
同時,您還會發(fā)現(xiàn)AppDbContext連接字符串已被添加到項目的appsettings.json文件。
public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService(); context.Database.EnsureCreated(); } catch (Exception ex) { var logger = services.GetRequiredService(); logger.LogError(ex, "An error occurred creating the DB."); } } host.Run(); }
要解析前面代碼中的類型名,請將以下using語句添加到Program.cs的現(xiàn)有using語句塊的末尾:
using Microsoft.Extensions.DependencyInjection; using WebApplication1.Models;
確定在代碼中使用項目名稱而不是WebApplication1。
大多數(shù)代碼僅用于錯誤處理,并在應(yīng)用程序運(yùn)行之前提供對EF Core AppDbContext的訪問。重要的一行是表明context.Database.EnsureCreated()的那一行,如果數(shù)據(jù)庫不存在,它將創(chuàng)建數(shù)據(jù)庫?,F(xiàn)在,這個應(yīng)用程序就可以運(yùn)行了。
測試程序
運(yùn)行該應(yīng)用程序,然后導(dǎo)航到地址欄中的/Games。您將看到一個空白列表頁面。單擊Create New將新Game添加到集合中。填寫表格,然后點擊Create,在列表視圖中可以看到它。單擊Details查看單個記錄的詳細(xì)信息。
添加另一條記錄。您可以單擊“Edit”更改記錄的詳細(xì)信息,或單擊“Delete將其刪除,在刪除記錄之前,系統(tǒng)將提示您確認(rèn)操作。
以上就是使用EF Core和Visual Studio 2019在ASP.NET Core應(yīng)用程序中處理數(shù)據(jù)所需的全部步驟。
在下一節(jié)教程中,您將學(xué)習(xí)如何向應(yīng)用程序添加Web API支持。
*想要獲得 Visual Studio 更多資源或正版授權(quán)的朋友,可以咨詢【慧都客服】了解哦~