2013-04-09 14 views
1

我想知道如何從我的全局過濾器中訪問IDbConnection,到目前爲止我已經是這樣了。我如何使用IDbConnection與我的apphost

現在我想到的越多,我的apphost中就沒有IDb的東西,那麼我如何檢索包裹ormlite'stuff'和Cache的存儲庫?

謝謝 斯蒂芬

的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 

     }); 
} 

回答

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 
    } 
}); 
+0

很棒,謝謝。 – 2013-04-09 22:26:08

+0

實際上使用它兩種方式,但不是與連接,但我的存儲庫。再次感謝@Demis爲我呈現方式。 – 2013-04-09 23:14:50