DB 中的 AppSettings 而不是 App.Config
Posted
技术标签:
【中文标题】DB 中的 AppSettings 而不是 App.Config【英文标题】:AppSettings in DB instead of App.Config 【发布时间】:2018-11-09 01:44:10 【问题描述】:更新的问题更清晰: 如何加载存储在特定于环境的 DB 中的应用程序设置(具有值 O、T、A、P 的列)和特定业务应用程序实例。 示例:我来自 A 公司,我当前的实例应该只有 A 的所有条目/数据引用和 A 的特定环境设置。
我正在创建的应用程序内部几乎没有应用程序实例。 它类似于工资管理工具,但该工具旨在并行处理多个实例。 这么多公司可以配置那里的系统并并行使用它。
它包括用于设置各种实体的 UI 和用于 CRUD 的 Soap。 我希望你们都清楚上下文。
问题是: 可能有很多配置细节,性质相似,但业务实例不同。
所以我打算将设置存储在数据库表 "AppSettings" 中。 它将具有来自业务实例的外键,以便在获取时仅获取该特定实例的设置。
我的关注和实际问题: 我们有 OTAP(本地、测试、验收、生产),都有不同的设置值。 所以在每个环境中我都必须查询特定的环境进行设置。
这听起来不是最佳解决方案。 任何建议或投注解决方案将不胜感激。
【问题讨论】:
我假设您对于不同的环境也有不同的数据库(实例)?那么我认为这不是问题吗?您为每个不同的环境交换连接字符串,它会得到正确的数据库 nope.. 一个数据库实例,因为这个工具在数据库上不是很大.. 我们有应用程序表,其中包含应用程序实例详细信息.. 这个应用程序表在任何地方都被引用.. @RTWorkSpace 有什么问题?只需编写一个适当的查询来加载您想要的环境的设置。问题不清楚,并且在句子中间加上多个点会使 更难 理解你在问什么 @RTWorkSpace 也许真正的问题不是如何读取特定环境的设置,而是重新组织代码以便它可以在多个环境中工作?也许让它在加载配置设置后不关心环境? 这称为多租户。此数据库中的数据之间是否存在任何串扰?如果没有,就在不同的数据库中创建不同的租户 【参考方案1】:回答你的问题:
select * from AppSettings where businessinstance = x and environemt = 'Test'
表定义:
ID (int auto increment) // 可选 业务实例(PK、FK int) 键(PK 唯一约束,字符串) 值(字符串) 环境(PK 字符串/整数)businessInstance、key 和 environment 应该是唯一约束。 所以像这样创建PK。并且有一个ID可以轻松更新
【讨论】:
以上是关于DB 中的 AppSettings 而不是 App.Config的主要内容,如果未能解决你的问题,请参考以下文章
C#/ ASP.Net:app.settings而不是web.config
vb.net 2.0 如何用Configuration.ConfigurationSettings.AppSettings读取配置文件中的内容?
使用链接文件的 App 或 Web Config 中的 AppSettings
加密 App.Config 文件的 appsettings 部分中的单个密钥