使用前必須要先知道 Entity Framework 有兩個版本。
- Entity Framework Core : 適用於 .NET 的新式物件資料庫對應程式。 其支援 LINQ 查詢、變更追蹤、更新以及結構描述移轉。
 - Entity Framework 6 : 透過資料庫提供者外掛程式模型搭配使用 SQL Server/Azure SQL Database、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 及更多資料庫。
 
因此,使用EF6表現上會與 EF core 功能會也所不同。EF6是基於ADO.NET發展出來的物件關聯對應 (O/R Mapping),利用了抽象化資料結構的方式,將每個資料庫物件都轉換成應用程式物件 (entity),而資料欄位都轉換為屬性 (property),關聯則轉換為結合屬性 (association),讓資料庫的 E/R 模型完全的轉成物件模型。
參考文件
- microsoft : microsoft Entity Framewor
 - Wiki : Entity Framework
 - Wiki : Entity Framework Core
 - Wiki : ADO.NET
 - The Will Will Web: EF Core 已經不會在 SaveChanges() 的時候對實體模型進行額外驗證
 - 複雜類型 - EF 設計工具
 - Entity Framework 6
 
創建方式
這邊操作建議獨立 folder 存放”實體資料模型”。如以下步驟操作步驟
- 選擇 ADO.NET 實體資料模型
 - 選擇 “來自資料庫的EF Designer” (本文使用 DB First)
 - 選擇連線方式 (連線資訊會直接寫如Web.config當中)
 - 選擇版本 (建議選擇6.x穩定版本)
 - 選擇指定結構
 





起手前介紹
如果是初次使用EF的讀者,看看以下說明。
EF 創建後會產生 “DbContext”  可以從 xxx.context.cs 查看、修改、複寫。基於ADO.Net來說 EF 很貼心把 Connection Open()/Close() 寫好,使用上會比較友善許多、簡單。


xxx.edmx 下一篇會介紹如何此用,原則上他是資料庫、實體資料模型比較的參考文件後面再細談。
使用方式
這邊我們看看如何使用 CRUD 方式測試,這邊會使用非常簡單處理方式執行。如果想要本章節DB結構可以參考最下方。
EF 使用規則 :
- 需要先初始化 dbcontext
 - 每當執行變更DB動作需要使用SaveChanges()動作
 
新增
1  | public class CRUD  | 
修改
這邊稍微留意 EFCore 中是使用 Update方式更新,EF則是直接修改當前”資料”使用上需要小心使用。
1  | public class CRUD  | 
刪除
1  | public class CRUD  | 
查詢
1  | public class CRUD  | 
本章使用DB結構
1  | /****** Object: Table [dbo].[DEMO_1] Script Date: 2022/12/20 上午 09:59:51 ******/  | 
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 John Conte Blog!
 評論
DisqusGitalk







![[筆記] Synology 創建 Docker datalust/seq 環境](/image/20250810_08-15-28.png)
![[DevOps] 創建一個 docker agent](/image/20250810_08-16-08.png)