0%

前情提要

筆者這邊已經寫了幾篇SqlSugar的介紹文章,筆者一開始就形容SqlSugarEFCoreDapper的完美融合體,結合兩個套件有的優點並極大化其效用,就像這篇的主題,SqlSugar有提供產生實體的相關API,筆者目標是加以包裝變成是一個dotnet tool,可以透過下指令的方式完成產生實體作業。

閱讀全文 »

前情提要

有在觀看筆者的ORM系列文就知道,其中EFCore就這麼一篇出現過,即使用override SaveChanges方法來達到針對共同欄位的新增、編輯功能,什麼叫共同欄位,筆者常設計的就是CreatedAtCreatedByUpdatedAtUpdatedBy等,這因開發環境不同,習慣的命名方式可能不一樣,但一樣的是,要紀錄該筆資料列的新增、編輯的時間及使用者,原因就這麼單純。
若以DapperADO.Net以純SQL的方式製作,會在InsertUpdate語法上多組這些相關欄位上去,也不是不行,但以一個大型系統來說,若偏後台管理平台來說,這些欄位都是極重要,且每張資料表皆必須要有,這時每段Service都要填上,也是會累死人,[DotnetCore]ORM系列-EFCore:資料表共同欄位設定就是於EFCore世界中的解決方式,筆者今天想要來聊聊Chloe的解決方式。

閱讀全文 »

前情提要

又來到介紹ORM框架的時候到了,筆者之前就介紹過類似的[DotnetCore]ORM系列-Chloe:入門篇,總覺得差一點,類似像Interceptor, Chloe部份是DataBag的概念,可以於Interceptor事件間傳遞物件,筆者寫過一篇[DotnetCore]ORM系列-EFCore:資料表共同欄位設定,其中針對每個表中共同擁有的欄位做更新時著實方便。
Chloe也不是做不到,因Interceptor中可存取到IDBCommand,必須自己加以實作,不像EFCoreSqlSugar那樣有包好的事件可使用。筆者於公司開發專案環境中使用EFCoreDapper,由於Dapper必須得撰寫sql,Insert、Update時EFCore方便些,由於筆者對於EFCore也不是非常熟捻,因此於Hangfire併發Job時吃了一點苦,高併發會導致連線錯亂,直接噴無法連線資料庫等各種不可控的錯誤,心念一轉,何不直接導入此主題要介紹的ORM框架-SqlSugar

閱讀全文 »

前情提要

筆者這篇就講一點輕鬆的話題,筆者慣用的設計,就是不喜歡在到處放try catch,希望在一個地方統一try catch就好,這樣若要改變Exception處理行為,就改一個地方即可,當然有時你為了要配合某種情境,碰到Exception,要將某一些處理狀態要壓成F等等,無論如何,筆者都會先設計一個GlobalErrorHandler做統一抓取Exception並處理。

閱讀全文 »