
- 實體框架教程
- 實體框架 - 首頁
- 實體框架 - 概述
- 實體框架 - 架構
- 實體框架 - 環境設定
- 實體框架 - 資料庫設定
- 實體框架 - 資料模型
- 實體框架 - DbContext
- 實體框架 - 型別
- 實體框架 - 關係
- 實體框架 - 生命週期
- 實體框架 - 程式碼優先方法
- 實體框架 - 模型優先方法
- 實體框架 - 資料庫優先方法
- 實體框架 - 開發方法
- 實體框架 - 資料庫操作
- 實體框架 - 併發
- 實體框架 - 事務
- 實體框架 - 檢視
- 實體框架 - 索引
- 實體框架 - 儲存過程
- 實體框架 - 斷開連線的實體
- 實體框架 - 表值函式
- 實體框架 - 本機SQL
- 實體框架 - 列舉支援
- 實體框架 - 非同步查詢
- 實體框架 - 持久化
- 實體框架 - 投影查詢
- 實體框架 - 命令日誌
- 實體框架 - 命令攔截
- 實體框架 - 空間資料型別
- 實體框架 - 繼承
- 實體框架 - 遷移
- 實體框架 - 渴望載入
- 實體框架 - 延遲載入
- 實體框架 - 顯式載入
- 實體框架 - 驗證
- 實體框架 - 跟蹤更改
- 實體框架 - 彩色實體
- 實體框架 - 程式碼優先方法
- 實體框架 - 第一個示例
- 實體框架 - 資料註釋
- 實體框架 - Fluent API
- 實體框架 - 播種資料庫
- 實體框架 - 程式碼優先遷移
- 實體框架 - 多個DbContext
- 實體框架 - 巢狀實體型別
- 實體框架資源
- 實體框架 - 快速指南
- 實體框架 - 有用資源
- 實體框架 - 討論
實體框架 - 資料庫優先方法
在本章中,讓我們學習如何使用資料庫優先方法建立實體資料模型。
資料庫優先方法為實體資料模型提供了程式碼優先和模型優先方法的替代方案。它從專案中的資料庫建立模型程式碼(類、屬性、DbContext 等),這些類成為資料庫和控制器之間的連結。
資料庫優先方法從現有的資料庫建立實體框架。我們以與在模型優先方法中使用相同的方式使用所有其他功能,例如模型/資料庫同步和程式碼生成。
讓我們舉一個簡單的例子。我們已經有了一個數據庫,其中包含 3 個表,如下面的影像所示。

步驟 1 - 讓我們建立一個名為 DatabaseFirstDemo 的新控制檯專案。
步驟 2 - 要建立模型,首先右鍵單擊解決方案資源管理器中的控制檯專案,然後選擇新增→新項…

步驟 3 - 從中間窗格中選擇 ADO.NET 實體資料模型,並在“名稱”欄位中輸入 DatabaseFirstModel。
步驟 4 - 單擊“新增”按鈕,將啟動實體資料模型嚮導對話方塊。

步驟 5 - 選擇“從資料庫 EF 設計器”,然後單擊“下一步”按鈕。

步驟 6 - 選擇現有資料庫,然後單擊“下一步”。

步驟 7 - 選擇 Entity Framework 6.x,然後單擊“下一步”。

步驟 8 - 選擇要包含的所有表、檢視和儲存過程,然後單擊“完成”。
您將看到從資料庫生成的實體模型和 POCO 類。

現在讓我們透過在 program.cs 檔案中編寫以下程式碼從資料庫中檢索所有學生。
using System; using System.Linq; namespace DatabaseFirstDemo { class Program { static void Main(string[] args) { using (var db = new UniContextEntities()) { var query = from b in db.Students orderby b.FirstMidName select b; Console.WriteLine("All All student in the database:"); foreach (var item in query) { Console.WriteLine(item.FirstMidName +" "+ item.LastName); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } } }
執行上述程式時,您將收到以下輸出 -
All student in the database: Ali Khan Arturo finand Bill Gates Carson Alexander Gytis Barzdukas Laura Norman Meredith Alonso Nino Olivetto Peggy Justice Yan Li Press any key to exit...
執行上述程式時,您將看到之前在資料庫中輸入的所有學生的姓名。
我們建議您逐步執行以上示例以更好地理解。
廣告