- 實體框架教程
- 實體框架 - 首頁
- 實體框架 - 概述
- 實體框架 - 架構
- 實體框架 - 環境設定
- 實體框架 - 資料庫設定
- 實體框架 - 資料模型
- 實體框架 - DbContext
- 實體框架 - 資料型別
- 實體框架 - 關係
- 實體框架 - 生命週期
- 實體框架 - 程式碼優先方法
- 實體框架 - 模型優先方法
- 實體框架 - 資料庫優先方法
- 實體框架 - 開發方法
- 實體框架 - 資料庫操作
- 實體框架 - 併發
- 實體框架 - 事務
- 實體框架 - 檢視
- 實體框架 - 索引
- 實體框架 - 儲存過程
- 實體框架 - 離線實體
- 實體框架 - 表值函式
- 實體框架 - 原生 SQL
- 實體框架 - 列舉支援
- 實體框架 - 非同步查詢
- 實體框架 - 持久化
- 實體框架 - 投影查詢
- 實體框架 - 命令日誌
- 實體框架 - 命令攔截
- 實體框架 - 空間資料型別
- 實體框架 - 繼承
- 實體框架 - 遷移
- 實體框架 - 渴望載入
- 實體框架 - 延遲載入
- 實體框架 - 顯式載入
- 實體框架 - 驗證
- 實體框架 - 跟蹤更改
- 實體框架 - 彩色實體
- 實體框架 - 程式碼優先方法
- 實體框架 - 第一個示例
- 實體框架 - 資料註解
- 實體框架 - Fluent API
- 實體框架 - 初始化資料庫
- 實體框架 - 程式碼優先遷移
- 實體框架 - 多個 DbContext
- 實體框架 - 巢狀實體型別
- 實體框架資源
- 實體框架 - 快速指南
- 實體框架 - 有用資源
- 實體框架 - 討論
實體框架 - 列舉支援
在實體框架中,此功能允許您在域類上定義一個列舉型別屬性,並將其對映到整型型別的資料庫列。然後,實體框架會在查詢和儲存資料時將資料庫值轉換為相關的列舉,反之亦然。
當處理具有固定數量響應的屬性時,列舉型別具有各種好處。
當您使用列舉時,應用程式的安全性和可靠性都會提高。
列舉使使用者犯錯的可能性大大降低,並且諸如注入攻擊之類的問題根本不存在。
在實體框架中,列舉可以具有以下底層型別:
- 位元組 (Byte)
- Int16
- Int32
- Int64
- SByte
列舉元素的預設底層型別為 int。
預設情況下,第一個列舉器的值為 0,每個後續列舉器的值增加 1。
讓我們來看下面的示例,我們將建立一個實體並在其中新增一些屬性。
步驟 1 - 從“檔案”→“新建”→“專案”選單選項建立新專案。
步驟 2 - 在左側窗格中,選擇“控制檯應用程式”。
步驟 3 - 輸入 EFEnumDemo 作為專案名稱,然後單擊“確定”。
步驟 4 - 右鍵單擊解決方案資源管理器中的專案名稱,然後選擇“新增”→“新建項”選單選項。
步驟 5 - 在“模板”窗格中選擇“ADO.NET 實體資料模型”。
步驟 6 - 輸入 EFEnumModel.edmx 作為檔名,然後單擊“新增”。
步驟 7 - 在“實體資料模型嚮導”頁面上,選擇“空 EF 設計器模型”。
步驟 8 - 單擊“完成”。
步驟 9 - 然後右鍵單擊設計器視窗,然後選擇“新增”→“實體”。
將出現“新建實體”對話方塊,如下圖所示。
步驟 10 - 輸入 Department 作為實體名稱,DeptID 作為屬性名稱,將屬性型別保留為 Int32,然後單擊“確定”。
步驟 11 - 右鍵單擊實體,然後選擇“新增新”→“標量屬性”。
步驟 12 - 將新屬性重新命名為 DeptName。
步驟 13 - 將新屬性的型別更改為 Int32(預設情況下,新屬性的型別為字串)。
步驟 14 - 要更改型別,請開啟“屬性”視窗並將“型別”屬性更改為 Int32。
步驟 15 - 在實體框架設計器中,右鍵單擊 Name 屬性,選擇“轉換為列舉”。
步驟 16 - 在“新增列舉型別”對話方塊中,輸入 DepartmentNames 作為列舉型別名稱,將“底層型別”更改為 Int32,然後向該型別新增以下成員:物理學、化學、計算機和經濟學。
步驟 17 - 單擊“確定”。
如果您切換到“模型瀏覽器”視窗,您將看到該型別也已新增到“列舉型別”節點。
讓我們按照“模型優先方法”章節中提到的所有步驟從模型生成資料庫。
步驟 1 - 右鍵單擊實體設計器介面,然後選擇“從模型生成資料庫”。
將顯示“生成資料庫嚮導”的“選擇資料連線”對話方塊。
步驟 2 - 單擊“新建連線”按鈕。
步驟 3 - 輸入伺服器名稱和 EnumDemo 作為資料庫名稱,然後單擊“確定”。
步驟 4 - 將彈出一個對話方塊詢問您是否要建立一個新資料庫,單擊“是”。
步驟 5 - 單擊“下一步”,建立資料庫嚮導將生成用於建立資料庫的資料定義語言 (DDL)。現在單擊“完成”。
步驟 6 - 右鍵單擊 T-SQL 編輯器,然後選擇“執行”。
步驟 7 - 要檢視生成的模式,請右鍵單擊 SQL Server 物件資源管理器中的資料庫名稱,然後選擇“重新整理”。
您將在資料庫中看到 Departments 表。
讓我們來看下面的示例,在這個示例中,一些新的 Department 物件被新增到上下文中並儲存。然後檢索計算機系。
class Program {
static void Main(string[] args) {
using (var context = new EFEnumModelContainer()) {
context.Departments.Add(new Department { DeptName = DepartmentNames.Physics});
context.Departments.Add(new Department { DeptName = DepartmentNames.Computer});
context.Departments.Add(new Department { DeptName = DepartmentNames.Chemistry});
context.Departments.Add(new Department { DeptName = DepartmentNames.Economics});
context.SaveChanges();
var department = (
from d in context.Departments
where d.DeptName == DepartmentNames.Computer
select d
).FirstOrDefault();
Console.WriteLine(
"Department ID: {0}, Department Name: {1}",
department.DeptID, department.DeptName
);
Console.ReadKey();
}
}
}
執行上述程式碼後,您將收到以下輸出:
Department ID: 2, Department Name: Computer
我們建議您逐步執行上述示例,以便更好地理解。