dotnet core 3.0 + Entity Framework Tip – 如何印出底層自動產生的SQL

在寫 dotnet core / .net MVC 的專案時,通常都會搭配 Entity Framework (簡稱EF)來存取資料庫,如 MS SQL、MySQL 等等。

以我們這次的案子來說,會了讓同仁能更了解 EF的底層機制,所以想說在 dotnet core 3.0 的程式裏,加上設定,方便觀察各個指令會對應到的SQL Script.

以 dotnet core 3.0來說,我們要做的設定動作有
一、產生對應 LoggerFactory (*比如說 : 是要寫到Console、或是 Event 、DB 等其它目的地)
二、在程式連結資料庫(DBContext)的時候,把上面產生的 Logger也一併綁定,方便系統輸出。

如果是用 dotnet Core 2.x的話,
DBContext 裏的設定如下


參考資料 : https://stackoverflow.com/questions/53690820/how-to-create-a-loggerfactory-with-a-consoleloggerprovider

dotnet core 3.0 DateTime in JSON

最近手邊有個小案子,需要從前端傳遞日期到後端 ~
如果是用預設的 .net core 功能來接受 json的日期資料的話 ,可能會遇到問題

比如說,後端收到的是 這種格式2012-04-23T18:25:43.511Z ~
而不是我們一般常使用的格式,如 2019-12-02 13:22:59
做了一下功能,看來是預設的套件沒有支援,所以如果真的傳這種資料的話 ~
C#這邊會需要做點加工 …

以下,是我們的解法 供大家參考 ~
一、安裝 NewtonsoftJson的套件
二、修改設定檔 Startup.cs 來

第一步,安裝 NuGet 的套件

第二步,修改 Startup.cs 以加入 NewtonsoftJson

voilà ~ 一切就ok囉 ~~~
後面我們再一一分享,這次小專案裏我們還遇到哪些小事件~ (*如 Entity Framework 產生 SQL 該如何取得/列印在 Console)

dotnet core 3 安裝過程 (Error 500.30 ANCM In-Process Start Failure)

最近因為專案需要,所以開始導入 dotnet core ,以目前的時間 2019-12-2,最新的版本為 .NET Core 3.0

官方連結 在這 https://dotnet.microsoft.com/download/dotnet-core/3.0
手邊的測試環境為 Win Server 2012 + IIS 8 (*上面已有裝 dotnet core v2.2)
不過在手邊使用的開發工具為 Visual Studio for Mac, v8.3.6 + .NET Core 3.0 ~

所以在將程式從本機發佈的資料夾放至主機時

會出現 HTTP Error 500.30 – ANCM In-Process Start Failure 的錯誤訊息

當然發生的原因可能有很多,不過思考一下 v2.2 如果主機上已經成功的運作 ~
其實應該很有可能是執行環境的問題 ~
後來到官網看了一下,很有可能是沒有裝最新的3.0 runtime ~

最後依官網的建議,裝上 Hosting Bundle (依它的指示 下一步下一步 安裝即可)

安裝完成後,再將 IIS 重啟後,即可正常執行 ~

.NET Core 版本清單的資訊,如下 ~ 各位如有需要可自行選擇。
https://dotnet.microsoft.com/download/dotnet-core