1

我想知道如何从我的全局过滤器中访问 IDbConnection,到目前为止我所拥有的就是这个。

现在我想得越多,我的 apphost 中就没有 IDb 东西,那么我该如何检索包装了 ormlite 'stuff' 和缓存的存储库?

谢谢你,斯蒂芬

全球.asax

public override void Configure(Container container)
{


    var dbConnectionFactory =
        new OrmLiteConnectionFactory(ConfigUtils.GetConnectionString("test"), true, SqlServerOrmLiteDialectProvider.Instance);

    container.Register<IDbConnectionFactory>(dbConnectionFactory); 

    RequestFilters.Add((httpReq, httpResp, requestDto) =>
        {

            // Do something here with either my repo or ormLite

        });
}
4

1 回答 1

2

如果您可以访问容器,则可以执行以下操作:

RequestFilters.Add((httpReq, httpResp, requestDto) => {
    using (var db = container.Resolve<IDbConnectionFactory>().Open()) 
    {
        // Do something here with either my repo or ormLite
    }
});

否则,您可以通过AppHostBase.Resolve<T>单例访问它:

RequestFilters.Add((httpReq, httpResp, requestDto) => {
    using (var db = AppHostBase.Resolve<IDbConnectionFactory>().Open()) 
    {
        // Do something here with either my repo or ormLite
    }
});
于 2013-04-09T22:20:59.527 回答