我通过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);
谢谢你, 斯蒂芬
答案 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));
}