公司的資料庫有很多功能用到了分表分庫,根據條件,決定要連哪一台資料庫,用哪一張資料表,概念上很簡單,花了一點時間研究,EF Core 的寫法。
EF Core + Cursor-based pagination 的寫法
我們都知道,可以透過分頁技巧,將大量資料切成小部分回傳給調用端,常見的技巧就是 Offset-based 以及 Cursor-based,我將使用 EF Core + Postgresql 實作分頁
下圖出自:A deep dive into cursor-based pagination in MongoDB (engage.so)
通過 Refitter CLI,從 Swagger / OpenAPI Specification 檔案,產生 Refit Interfaces Client
一直以來都是用 NSwag 來產生 OpenAPI Client & Server Code,但它所產生出來的 Client Code 會 throw Exception,這讓我在商業流程的控制需要額外付出一些心力,為了解決這問題,我會額外再墊一層,最近逛到有人分享 Refit 這個套件,它所產生出來的具名 Method 不會拋出例外,讓我可以根據 HttpStatusCode + Error Content 控制商業流程。
如何使用 ChangeTracking 追蹤物件變化再透過 EF Core 存到資料庫
- 885
- 0
- Change Tracking
- 2023-06-09
上一篇提到了 ChangeTracking + EFCore.BulkExtensions.BatchUpdate,可以很輕易的幫我們產生出有異動的 Update SQL 語法,如何使用 ChangeTracking 追蹤物件變化再透過 EFCore.BulkExtensions 存到資料庫
很可惜的是 EFCore.BulkExtensions.BatchUpdate 沒有支援異動多張資料表,對於資料庫命令的往返會隨著異動的資料表而增加,這次我想要改使用 EF Core 原生的異動追蹤。
追蹤異動變化使用 ChangeTracking ,消化異動並存放到操作資料庫則使用 EF / EF Core,當然,這不受限,你可以挑選妳喜歡的控制方式,接著,來看看怎麼實現它吧。
如何使用 ChangeTracking 追蹤物件變化再透過 EFCore.BulkExtensions 存到資料庫
- 536
- 0
- Change Tracking
- 2022-03-30
當我們需要異動資料庫某一筆資料的某些欄位,可以通過追蹤機制來記錄那些欄位被改變了,除了自己開發之外,還可以考慮 ChangeTracking,它是一套可以輕易的幫我們追蹤物件、集合的利器,不過,有一點可惜的是他最後一次更新是在 2019
接下來,我想要利用這個追蹤機制幫我完成資料表的部分更新,有異動的欄位才更新。
追蹤異動變化使用 ChangeTracking ,消化異動並存放到操作資料庫則使用 EF / EF Core,當然,這不受限,你可以挑選妳喜歡的控制方式,接著,來看看怎麼實現它吧。
[.NET 6] 如何優雅(Gracefully Shutdown)的關閉 .NET Core Console 應用程式
- 2970
- 0
- Graceful Shutdown
- 2023-08-03
當有一個應用程序被用戶 ( SIGINT /Ctrl+C) 或 Docker ( SIGTERM / docker stop ) 停止時,它需要優雅地關閉一個長時間運行的工作;換句煥說,當應用程式收到關閉訊號的時候,要把工作做完,應用程式才可以關閉。微軟的 Microsoft.Extensions.Hosting 可以幫我們接收/處理關閉訊號,我們只需要告訴它要怎麼做就可以了,我在實作的過程當中,碰到了一些問題,以下是我的心得
[EF Core][SQLite]如何使用 EF Core DbContext 以 Microsoft.EntityFrameworkCore.Sqlite 為例
- 4908
- 0
- Entity Framework Core
- 2021-07-13
.NET Core 1.0 開始為了跨平台重新改寫了 SQLite,名為 Microsoft.Data.Sqlite,刪除了過時的 DataTable 和 DataAdapter 相關的 DataSet API,這已經和之前的 System.Data.SQLite 不一樣,但團隊還是盡量讓它們兩者的 API 變化降到最低。這裡有官方的比較說明文件 與System.Data.SQLite的比較-Microsoft.Data.Sqlite | 微軟文檔
[EF Core 5][UnitTest]在 EF Core 使用 In-Memory 降低建立測試替身的成本
當我們要針對商業邏輯測試時,可能需要隔離 EFCore DbContext,搭配 Mock Framework 可以快速地建立測試替身假的 DbContext,自從 EF Core 的 In-Memory 出現之後,建立 DbContext 測試替身這件事,就變得輕鬆許多了
EF Core / EF 新增資料後回傳 IDENTITY 欄位結果
- 2406
- 0
- Entity Framework Core
- 2021-04-16
有天跟同事結對開發的時候,發現 EF6 新增後,會多一個 IDENTITY 欄位的查詢,經研究後發現這個是 EF 6 的特性,觀察了一下 EF Core 也有相同的特性
如何使用 Web 前端技術開發桌面應用程式 WinForm + CefSharp + Chromium - 起手式
CEF 的全名是 Chromium Embedded Framework,是用於嵌入 Chromium 瀏覽器的簡單框架,用 C++/CLI 開發
CefSharp 是在 .NET 平台封裝了 CEF,可以使用 C# / VB 語言開發
Winform 桌面應用程式要做出酷炫的畫面門檻相當的高,反觀當前的網頁技術發展的相當蓬勃,酷炫的畫面相當的多,CefSharp 可以讓我們嵌入 Chromium,輕鬆的使用前端技術,UI 的開發團隊,只要完成一個設計就可以同時給桌面應用程式和網站使用。
前端語言怎麼跟 C# 溝通?JavaScript + Handler 直接整合 C# 或者 JavaScript + Web API OWIN,這兩種方式都可以
- 1
- 2