【问题标题】:How do I use IDbConnection withing my apphost如何在我的 apphost 中使用 IDbConnection
【发布时间】:2013-04-09 21:33:26
【问题描述】:

我想知道如何从我的全局过滤器中访问 IDbConnection,我目前掌握的就是这个。

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

谢谢, 斯蒂芬

Global.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

        });
}

【问题讨论】:

    标签: asp.net servicestack


    【解决方案1】:

    如果您可以访问容器,您可以这样做:

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

    否则你可以通过AppHostBase.Resolve&lt;T&gt;单例访问它:

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

    【讨论】:

    • 实际上两种方式都使用了,但不是连接,而是我的存储库。再次感谢@Demis 向我展示了方法。
    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多