use dapper in C# | C# 筆記


    源起

    把這個月以來開發中遇到的問題與找到的解法做個筆記吧~以便未來記憶。這邊就貼貼參考到的 link 嚕。


    ORM 工具 - Dapper

    問題:一直很想用 ORM 的好處,可是 Entity Framework 的陣容實在龐大,光是改 table schema 就會動到一堆東西,沒有妥善的紀律很難適用於 team 。project 的第一階段先用傳統 ADO.NET 來使用,但仍然想用 ORM 真實地操控 object ,不要沿用舊方法弄 dataset, datatable 這些東東。

    查到這篇燃起一絲希望,看起來可行耶~
    另一種資料存取對映處理方式的選擇 - Dapper

    安裝跟基本使用可參考這篇
    短小精悍的.NET ORM神器 – Dapper

    還好讓我查到這個,大大提升了開發進度以及用更簡約的方式處理欄位。


    Try

    底下貼幾個目前有試著用到的寫法。未必是最好的,但至少 it works.
    Query SQL View,然後回傳結果用 LINQ 做 filter

    執行 SQL Stored Procedure


    額外發現

    用 LINQ query 時發現為什麼明明某個 varchar 的欄位應該要能查得到值,但卻一直沒有反應。一度以為是欄位型態的問題。查到這篇後開始懷疑是 Dapper 的欄位 mapping 問題,畢竟那是個黑箱,我也不知道他是怎麼把 class 裡的 property 跟 SQL Table 的欄位拼湊在一起。

    於是後來我參考下面這篇把 model property 的名字都取做跟 SQL 回傳欄位一致,問題就解了。
    Dapper isn’t mapping correctly