- 實體框架教程
- 實體框架 - 首頁
- 實體框架 - 概述
- 實體框架 - 架構
- 實體框架 - 環境設定
- 實體框架 - 資料庫設定
- 實體框架 - 資料模型
- 實體框架 - DbContext
- 實體框架 - 型別
- 實體框架 - 關係
- 實體框架 - 生命週期
- 實體框架 - 程式碼優先方法
- 實體框架 - 模型優先方法
- 實體框架 - 資料庫優先方法
- 實體框架 - 開發方法
- 實體框架 - 資料庫操作
- 實體框架 - 併發
- 實體框架 - 事務
- 實體框架 - 檢視
- 實體框架 - 索引
- 實體框架 - 儲存過程
- 實體框架 - 離線實體
- 實體框架 - 表值函式
- 實體框架 - 原生SQL
- 實體框架 - 列舉支援
- 實體框架 - 非同步查詢
- 實體框架 - 持久化
- 實體框架 - 投影查詢
- 實體框架 - 命令日誌
- 實體框架 - 命令攔截
- 實體框架 - 空間資料型別
- 實體框架 - 繼承
- 實體框架 - 遷移
- 實體框架 - 渴望載入
- 實體框架 - 延遲載入
- 實體框架 - 顯式載入
- 實體框架 - 驗證
- 實體框架 - 跟蹤更改
- 實體框架 - 彩色實體 (Colored Entities - 此翻譯可能需要根據上下文調整)
- 實體框架 - 程式碼優先方法
- 實體框架 - 第一個示例
- 實體框架 - 資料註釋
- 實體框架 - Fluent API
- 實體框架 - 種子資料庫
- 實體框架 - 程式碼優先遷移
- 實體框架 - 多個DbContext
- 實體框架 - 巢狀實體型別
- 實體框架資源
- 實體框架 - 快速指南
- 實體框架 - 有用資源
- 實體框架 - 討論
實體框架 - 模型優先方法
在本章中,讓我們學習如何使用稱為“模型優先”的工作流在設計器中建立實體資料模型。
當您開始一個數據庫甚至還不存在的新專案時,模型優先方法非常有用。
該模型儲存在 EDMX 檔案中,可以在實體框架設計器中檢視和編輯。
在模型優先方法中,您在實體框架設計器中定義模型,然後生成 SQL,這將建立與您的模型匹配的資料庫模式,然後您執行 SQL 以在您的資料庫中建立模式。
您在應用程式中互動的類會自動從 EDMX 檔案生成。
以下是使用模型優先方法建立新的控制檯專案的簡單示例。
步驟 1 - 開啟 Visual Studio 並選擇檔案 → 新建 → 專案
步驟 2 - 從左側窗格中選擇已安裝 → 模板 → Visual C# → Windows,然後在中間窗格中選擇控制檯應用程式。
步驟 3 - 在“名稱”欄位中輸入 EFModelFirstDemo。
步驟 4 - 要建立模型,首先右鍵單擊解決方案資源管理器中的控制檯專案,然後選擇新增 → 新建項…
將開啟以下對話方塊。
步驟 5 - 從中間窗格中選擇 ADO.NET 實體資料模型,並在“名稱”欄位中輸入 ModelFirstDemoDB。
步驟 6 - 單擊“新增”按鈕,這將啟動實體資料模型嚮導對話方塊。
步驟 7 - 選擇“空 EF 設計器模型”,然後單擊“下一步”按鈕。實體框架設計器將開啟一個空白模型。現在我們可以開始向模型中新增實體、屬性和關聯。
步驟 8 - 右鍵單擊設計圖面,然後選擇“屬性”。在“屬性”視窗中,將“實體容器名稱”更改為 ModelFirstDemoDBContext。
步驟 9 - 右鍵單擊設計圖面,然後選擇新增新建 → 實體…
將開啟“新增實體”對話方塊,如下圖所示。
步驟 10 - 輸入 Student 作為實體名稱,Student Id 作為屬性名稱,然後單擊“確定”。
步驟 11 - 右鍵單擊設計圖面上的新實體,然後選擇新增新建 → 標量屬性,輸入 Name 作為屬性的名稱。
步驟 12 - 輸入 FirstName,然後新增另外兩個標量屬性,例如 LastName 和 EnrollmentDate。
步驟 13 - 透過遵循上述所有步驟新增另外兩個實體 Course 和 Enrollment,並新增一些標量屬性,如下所示。
步驟 14 - 我們在 Visual Designer 中有三個實體,讓我們在它們之間新增一些關聯或關係。
步驟 15 - 右鍵單擊設計圖面,然後選擇新增新建 → 關聯…
步驟 16 - 使關係的一端指向 Student,其多重性為一,另一端指向 Enrollment,其多重性為多。
步驟 17 - 這意味著一個 Student 有多個 Enrollments,而 Enrollment 屬於一個 Student。
步驟 18 - 確保選中“向'Post'實體新增外部索引鍵屬性”複選框,然後單擊“確定”。
步驟 19 - 同樣,在 Course 和 Enrollment 之間新增另一個關聯。
步驟 20 - 在實體之間新增關聯後,您的資料模型將如下螢幕所示。
現在,我們有一個簡單的模型,可以從中生成資料庫並用於讀取和寫入資料。讓我們繼續生成資料庫。
步驟 1 - 右鍵單擊設計圖面,然後選擇從模型生成資料庫…
步驟 2 - 您可以選擇現有資料庫,也可以透過單擊“新建連線…”來建立新的連線。
步驟 3 - 要建立新的資料庫,請單擊“新建連線…”
步驟 4 - 輸入伺服器名稱和資料庫名稱。
步驟 5 - 單擊“下一步”。
步驟 6 - 單擊“完成”。這將在專案中新增一個 *.edmx.sql 檔案。您可以透過開啟 .sql 檔案,然後右鍵單擊並選擇“執行”來在 Visual Studio 中執行 DDL 指令碼。
步驟 7 - 將顯示以下對話方塊以連線到資料庫。

步驟 8 - 成功執行後,您將看到以下訊息。
步驟 9 - 轉到伺服器資源管理器,您將看到資料庫已建立,其中包含三個指定的表。
接下來,我們需要交換我們的模型以生成使用 DbContext API 的程式碼。
步驟 1 - 右鍵單擊 EF 設計器中模型的空白處,然後選擇新增程式碼生成項…
您將看到以下“新增新建項”對話方塊開啟。
步驟 2 - 在中間窗格中選擇 EF 6.x DbContext 生成器,並在“名稱”欄位中輸入 ModelFirstDemoModel。
步驟 3 - 您將在解決方案資源管理器中看到生成了 ModelFirstDemoModel.Context.tt 和 ModelFirstDemoModel.tt 模板。
ModelFirstDemoModel.Context 生成 DbCcontext 和您可以返回並用於查詢的物件集,例如上下文、Students 和 Courses 等。
另一個模板處理所有型別 Student、Courses 等。以下是 Student 類,它是從實體模型自動生成的。
以下是 C# 程式碼,其中一些資料從資料庫中輸入和檢索。
using System;
using System.Linq;
namespace EFModelFirstDemo {
class Program {
static void Main(string[] args) {
using (var db = new ModelFirstDemoDBContext()) {
// Create and save a new Student
Console.Write("Enter a name for a new Student: ");
var firstName = Console.ReadLine();
var student = new Student {
StudentID = 1,
FirstName = firstName
};
db.Students.Add(student);
db.SaveChanges();
var query = from b in db.Students
orderby b.FirstName select b;
Console.WriteLine("All student in the database:");
foreach (var item in query) {
Console.WriteLine(item.FirstName);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
}
執行上述程式碼後,您將收到以下輸出:
Enter a name for a new Student: Ali Khan All student in the database: Ali Khan Press any key to exit...
我們建議您逐步執行上述示例,以便更好地理解。