如何在一次调用中使用OrmLite AppSettings检索所有设置?

时间:2014-11-10 13:37:13

标签: servicestack ormlite-servicestack

我通过MultiAppSettings一起使用TextFileSettings和OrmLiteAppSettings,但是希望在一次调用中预先读取所有数据库设置而不是按需,有没有办法做到这一点,所以一切都在内存中?

以下是相关代码:

        OracleDialect.Provider.NamingStrategy = new OrmLiteNamingStrategyBase();
        OracleDialect.Provider.StringSerializer = new JsonStringSerializer();

        var fileSettings = new TextFileSettings(ConfigUtils.GetAppSetting("PathToSecuredFile"));
        var dbFactory = new OrmLiteConnectionFactory(fileSettings.GetString("LeadDbConfigKey"), OracleOrmLiteDialectProvider.Instance);
        var dbSettings = new OrmLiteAppSettings(dbFactory);
        var multiSettings = new MultiAppSettings(fileSettings, dbSettings);
        container.Register<IAppSettings>(c => multiSettings);

谢谢你, 斯蒂芬

1 个答案:

答案 0 :(得分:1)

要预加载所有数据库应用程序设置,您只需将整个ConfigSetting数据库表读入.NET Dictionary并将其包装在DictionarySettings中,例如:

using (db = dbFactory.Open())
{
    var allDbSettings = db.Dictionary<string,string>(
        db.From<ConfigSetting>().Select(x => new { x.Id, x.Value}));

    var multiSettings = new MultiAppSettings(
        fileSettings, 
        new DictionarySettings(allDbSettings));
}