適合有.NET跟資料庫處理基礎的讀者閱讀
期望帶讀者了解實際工作上的應用,並且深入Source Code了解原理。
筆者推薦閱讀整合一篇文章版本 連結 : shps951023/Trace-Dapper.NET-Source-Code 目錄 前言、安裝環境 Dyn...
在前期開發階段因為表格結構還在調整階段,或是不值得額外宣告類別輕量需求,使用Dapper dynamic Query可以節省下來回修改class屬性的時間。當...
有了前面簡單ExpandoObject Dynamic Query例子的概念後,接著進到底層來了解Dapper如何細節處理,為何要自訂義DynamicMeta...
接下來是Dapper關鍵功能 Strongly Typed Mapping,因為難度高,這邊會切分成多篇來解說。 第一篇先以ADO.NET DataReade...
在前面ADO.NET Mapping例子可以發現嚴重問題「沒辦法多類別共用方法,每新增一個類別就需要重寫代碼」。要解決這個問題,可以寫一個共用方法在Runti...
接著使用Expression來解決Reflection版本問題,主要是利用Expression特性 : 「可以在Runtime時期動態建立方法」來解決問題。...
有了前面的邏輯,就著使用Expression實作動態建立方法。 為何先使用 Expression 實作而不是 Emit ? 除了有能力動態建立方法,相比Emi...
有了前面Expression版本概念後,接著可以進到Dapper底層最核心的技術 : Emit。 首先要有個概念,MSIL(CIL)目的是給JIT編譯器看的,...
以下代碼是Emit版本,我把C#對應IL部分都寫在註解。 public static class DemoExtension { public static...
為何Dapper可以這麼快? 前面介紹到動態使用 Emit IL 建立 ADO.NET Mapping 方法,但單就這功能無法讓 Dapper 被稱為輕量OR...