【发布时间】:2015-05-04 13:46:17
【问题描述】:
我有一个基于报告的网站,使用 ServiceStack 和 OrmLite,使用 SQL Server 后端。由于某些报告的持续时间,我想全局或选择性地(通过Service-派生类或某些属性)使运行报告的查询具有更长的CommandTimeout。我想继续使用现有代码来查询报告数据(Db.Select、Db.SqlList 调用),因此我不必在每个报告类和方法中编写样板代码。
我尝试过使用AlwaysUseCommand,但这需要声明一个具有打开连接的命令。如果不在我的 AppHost.Configure 方法中打开连接并且从不关闭它,我不知道如何做到这一点。如果它是一个函数指针会更好,但是唉。
我还研究了覆盖Service 的Db 属性,但这只是返回一个打开的IDbConnection,而不会让我覆盖创建的命令。
似乎我的最后一个选择是创建一个自定义 DbConnection 类,就像 MiniProfiler 的 ProfiledDbConnection 一样,但我必须实现十几个抽象方法。在 DbCommand 上设置一个属性似乎有点过头了。
那么,在ServiceStack.OrmLite中,如何全局修改创建的DbCommands中的CommandTimeout?
【问题讨论】:
标签: servicestack ormlite-servicestack