Category: EF

前陣子學會用 Polly TimeoutPolicy 限制執行時間的技巧,套用在某 EF 資料查詢服務,不料沒通過自動測試。用 DbSet<T>.ToList() 查詢全部只有一筆的資料表,卻觸發 Polly 5 秒 Timeout 上限,依直覺查詢本機資料庫再怎麼慢頂多幾百 ms,更甭...

EF Core Migration 可依據 Entity 類別針對不同資料庫(MSSQL、SQLite、Oracle、MySQL...)產生對映的 CREATE TABLE Script,能自動連上資料庫伺服器建好資料表,Entity 修改時還能生出增減修改欄位 ALTER Script (但有一些...

想用單元測試專案單獨測試 ASP.NET Core 裡的 EF Core DbContext,一時間傻住不知如何下手,就知道又有基本功要練了。ASP.NET Core 重度依賴 DI,網站專案如要使用 EF Core DbContext 物件需在 Controller 或 Service 建構式新增...

本系列文章打算用一個簡單的案例,展示如何用 Visual Studio 2019 專案範本快速做出一個可以新增修改刪除 SQL 資料的 ASP.NET Core Razor Page 網站,就像傻瓜相機一樣容易上手。(OS: 該不會現在的小朋友已不知傻瓜相機是什麼,結果看不懂比喻) 假想的需求情境像...

大家新年好,鼠年大吉。 今年過年比較怠惰,拖到初三才開始寫 Code。起了個迷你 Side-Project 計劃寫個網頁版「一二級保養檢核表」自用,最重要的目的是想熟悉 Razor Page。資料庫部分準備用 EF Core + SQLite,照著先前寫的 EF Core 筆記要產生資料表 Scri...

前幾篇筆記提到 EF Core 主打 Code First 概念,講求先定義 Model 再自動產生資料表 Schema 的運作模式。 熟悉傳統資料庫程式開發方式的老鳥們看完猛搖頭:為什麼把事情搞到這麼複雜? 先定義 Schema 文件直接決定關聯建好資料庫,開發者照著規格寫程式不是比較簡單明瞭? ...

Entity 間的關聯設計是 EF 應用的另一項重點。 Entity 關聯 先說一對多。以 Blog、Post 為例,關聯為一個 Blog 有很多篇 Post。 public class Blog { public int BlogId { get; set; } //Primary Ke...

Model 是 Entity Framework 運作的核心,EF Core 提供兩種建立 Model 做法:Code First 或逆向工程。 前者從程式需求出發設計及修改 Model,經由 Migration 機制生成建立及修改資料庫 Schema 指令,將資料庫變成我們想要的形狀。 逆向工程較...

學習 ASP.NET Core 的過程發現 Entity Framework Core 已成基本技能,應用廣泛,像 ASP.NET Core Identity 就少不了它,不懂點觀念很難在江湖走跳。 這系列筆記是這陣子的爬文心得整理,目的在涵蓋基本觀念與術語,細節部分則需參考相關文件或教學。 【參考...

前陣子在網路看到「該靠 EF(LINQ)還是自幹 SQL 語法(甚至一律轉成 SP)」 的討論,我的「個人偏好」挺明確-CRUD 可靠 EF/ORM 省工,複雜查詢或操作則走 Dapper 自己寫 SQL。不過它只算是「偏好」,其效益因客觀條件劇烈變動,若無視開發者背景、人力資源配置、系統需求等...

依一般資安準則,在設定檔使用明碼儲存連線字串是不被允許的,連線字串加密是基本要求。 雖然用反組譯.NET組件破解加密字串不是什麼難事,但駭客至少得先找到檔案拿到組件檔(DLL)才能動手,相較之下明碼連線字串就簡單多了,用關鍵字掃掃硬碟、備份媒體就能抓出一大把,不費吹灰之力蒐集到資料庫帳號密碼,...

註:閱讀本文章前有個先修課程,需知道.NET DateTimeKind如何影響Json.NET序列化結果,不熟悉的同學可以看補充教材、補充教材2 依先前研究心得:將JsonSerializerSettings指定DateTimeZoneHandling.Utc可以避免DateTimeKind.L...

考慮以下DataHelper靜態型別,有AddWorkItem及AddDataGroup兩個方法透過Entity Framework新増資料: public class DataHelper { //使用統一的靜態函式建立DbContext物件,避免自行建構 ...