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,因此我想我会提及它作为一个关注点。