6

當前存在ServiceStack的異步分支,這將使創建異步服務成爲可能。但要獲得異步的所有好處,所有IO綁定操作都應該是異步的,因此所有數據庫請求也應該是異步的。我目前使用OrmLite和Postgresql,因此我想知道OrmLite是否支持異步查詢/操作?如果不是,還有哪些.Net Micro-Orms支持異步操作?ServiceStack和OrmLite中的異步支持

回答

-1

很抱歉,如果我誤解了這個問題

,但你爲什麼不能換用任務並行庫TPL或等效的電話?

這就是我所做的,我對結果很滿意。在這一天結束時,你只能查詢數據...

感謝

+3

您可能會這樣做,但這需要將每個數據庫查詢作爲阻塞任務放在某個後臺線程上(通過TPL默認值,這將是一個ThreadPool線程)。如果ThreadPool最多有4個線程(每個CPU核心一個),那麼最多可以有4個並行的數據庫查詢。在某些情況下,這可能比在單個線程上按順序執行所有操作更有優勢,但通常您已經有多個併發線程。通過適當的異步,您可以同時運行許多併發運行的數據庫查詢。 – skrebbel

+1

這將使您能夠同時運行這些操作,OP詢問有關異步運行它們。非常不一樣。服務器上的異步是關於消耗更少的線程,而不是更多。 –

2

我最近開始對AsyncPoco,流行PetaPoco微ORM的完全異步叉的工作。它仍然需要一些測試和一些適當的文檔/示例,並且至今還不支持PostgreSQL。更新:AsyncPoco現在有一些基本的文檔和示例,現在支持PostgreSQL!

無論如何,您詢問了其他支持異步操作的.NET微型ORM,因此我想我會提及它作爲一個關注點。