Razor Pages - EF Core 與資料庫操作

Entity Framework 大幅簡化了物件關聯對映實作,透過搭配 EF Core ,我們依然可以在Razor Pages專案中,透過設定快整的與指定的資料庫進行溝通。

只要有 Entity Framework  經驗,不需要重新學習,就可以將過去的經驗運用在 Razor Pages 與 EF Core 的整合實作當中,輕易的實踐資料存取功能。

這裏準備一個資料庫RKTFinance,其中只有一個資料表 Companies,用來儲存數筆測試用的公司名稱資料。


建立一個 Razor Pages 專案,於其中建立一個  Models 資料夾,新增一個簡單的類別檔,其中定義CompanyId 與 CompanyName 兩組屬性,用來表示對映 Companies 資料表的同名欄位。


接下來建立另外一個  Data 資料夾,於其中新增 RazorEFContext 類別,必須衍生 DbContext 類別,負責串接要對映的底層資料連線,除了建構式之外,另外配置一個 PubliclyTradedCompanies 型別的 DbSet 泛型屬性 Companies,這個屬性可以支援連線字串串接的資料庫其中的 Companies 資料表。


現在開啟 Index.cshtml.cs ,其中 OnGetAsync 方法,透過 Companies 屬性引用,經由 Where 方法取得編號小於 6 的公司名稱清單,並且轉換為 List 物件回傳。

請特別注意  IndexModel(RazorEF.Data.RazorEFContext context) 這一行,其中的  RazorEFContext  透過注入機制於執行期取得物件,並且設定給  _context 變數。


開啟 Startup.cs 檔案,可以看到其中的 ConfigureServices 方法支援 RazorEFContext 類別的執行期物件注入設計,這是使用新版的好處,在舊版的 ASP.NET ,必須透過第三方的支援與設定才能在專案中支援相依性注入機制。


現在於 Razor Pages 頁面檔案,透過 Razor 語法,取出公司的編號以及名稱,其中僅取得編號小於 6 的公司。

以下是執行結果。


熟悉 MVC 的技術人員,對於轉換 Razor Pages ,基本上不會有太大的障礙,當然,如果分層寫得好的話,只需要展示層改寫即可。

沒有留言: