iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

🌊 進階學習 ADO.NET、Dapper、Entity Framework 系列

適合有.NET跟資料庫處理基礎的讀者閱讀
期望帶讀者了解實際工作上的應用,並且深入Source Code了解原理。

鐵人鍊成 | 共 30 篇文章 | 78 人訂閱 訂閱系列文 RSS系列文 團隊IT成長團
DAY 1

【深入Dapper.NET源碼】前言、安裝環境

筆者推薦閱讀整合一篇文章版本 連結 : shps951023/Trace-Dapper.NET-Source-Code 目錄 前言、安裝環境 Dyn...

2019-09-12 ‧ 由 暐翰 分享
DAY 2

【深入Dapper.NET源碼】Dynamic Query 原理 Part1

在前期開發階段因為表格結構還在調整階段,或是不值得額外宣告類別輕量需求,使用Dapper dynamic Query可以節省下來回修改class屬性的時間。當...

2019-09-13 ‧ 由 暐翰 分享
DAY 3

【深入Dapper.NET源碼】Dynamic Query 原理 Part2

有了前面簡單ExpandoObject Dynamic Query例子的概念後,接著進到底層來了解Dapper如何細節處理,為何要自訂義DynamicMeta...

2019-09-14 ‧ 由 暐翰 分享
DAY 4

【深入Dapper.NET源碼】 Strongly Typed Mapping 原理 Part1 : ADO.NET對比Dapper

接下來是Dapper關鍵功能 Strongly Typed Mapping,因為難度高,這邊會切分成多篇來解說。 第一篇先以ADO.NET DataReade...

2019-09-15 ‧ 由 暐翰 分享
DAY 5

【深入Dapper.NET源碼】 Strongly Typed Mapping 原理 Part2 : Reflection版本

在前面ADO.NET Mapping例子可以發現嚴重問題「沒辦法多類別共用方法,每新增一個類別就需要重寫代碼」。要解決這個問題,可以寫一個共用方法在Runti...

2019-09-16 ‧ 由 暐翰 分享
DAY 6

【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part3 : 動態建立方法重要概念「結果反推程式碼」優化效率

接著使用Expression來解決Reflection版本問題,主要是利用Expression特性 : 「可以在Runtime時期動態建立方法」來解決問題。...

2019-09-17 ‧ 由 暐翰 分享
DAY 7

【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part4 : Expression版本

有了前面的邏輯,就著使用Expression實作動態建立方法。 為何先使用 Expression 實作而不是 Emit ? 除了有能力動態建立方法,相比Emi...

2019-09-18 ‧ 由 暐翰 分享
DAY 8

【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part5 : Emit IL反建立C#代碼

有了前面Expression版本概念後,接著可以進到Dapper底層最核心的技術 : Emit。 首先要有個概念,MSIL(CIL)目的是給JIT編譯器看的,...

2019-09-19 ‧ 由 暐翰 分享
DAY 9

【深入Dapper.NET源碼】Strongly Typed Mapping 原理 Part6 : Emit版本

以下代碼是Emit版本,我把C#對應IL部分都寫在註解。 public static class DemoExtension { public static...

2019-09-20 ‧ 由 暐翰 分享
DAY 10

【深入Dapper.NET源碼】Dapper 效率快關鍵之一 : Cache 緩存原理

為何Dapper可以這麼快? 前面介紹到動態使用 Emit IL 建立 ADO.NET Mapping 方法,但單就這功能無法讓 Dapper 被稱為輕量OR...

2019-09-21 ‧ 由 暐翰 分享