I'm using ServiceStack 4 and currently access the database (Db
) in a service without any issue. However, in a RequestFilter
or a ResponseFilter
, I do not have access to the Db
property.
Is there any other way to access the database than resolving an <IDbConnection>
instance in the Execute
method of the filter? I tried resolving from a registered IDbConnection
, but it is not as seemless as in a Service
and the connection is closed.
I'm trying to keep it DRY and avoid breaking the Request chain.
Thank you for your help :)
You can resolve a IDbConnection
from the IDbConnectionFactory
that's registered in your AppHost IOC (i.e. you can only resolve registered dependencies), e.g:
using (var db = HostContext.Resolve<IDbConnectionFactory>().Open())
{
//...
}
This is also how the base Service
class resolves its IDbConnection.