【问题标题】:AppSettings in DB instead of App.ConfigDB 中的 AppSettings 而不是 App.Config
【发布时间】:2018-11-09 01:44:10
【问题描述】:

更新的问题更清晰: 如何加载存储在特定于环境的 DB 中的应用程序设置(具有值 O、T、A、P 的列)和特定业务应用程序实例。 示例:我来自 A 公司,我当前的实例应该只有 A 的所有条目/数据引用和 A 的特定环境设置。

我正在创建的应用程序内部几乎没有应用程序实例。 它类似于工资管理工具,但该工具旨在并行处理多个实例。 这么多公司可以配置那里的系统并并行使用它。

它包括用于设置各种实体的 UI 和用于 CRUD 的 Soap。 我希望你们都清楚上下文。

问题是: 可能有很多配置细节,性质相似,但业务实例不同。

所以我打算将设置存储在数据库表 "AppSettings" 中。 它将具有来自业务实例的外键,以便在获取时仅获取该特定实例的设置。

我的关注和实际问题: 我们有 OTAP(本地、测试、验收、生产),都有不同的设置值。 所以在每个环境中我都必须查询特定的环境进行设置。

这听起来不是最佳解决方案。 任何建议或投注解决方案将不胜感激。

【问题讨论】:

  • 我假设您对于不同的环境也有不同的数据库(实例)?那么我认为这不是问题吗?您为每个不同的环境交换连接字符串,它会得到正确的数据库
  • nope.. 一个数据库实例,因为这个工具在数据库上不是很大.. 我们有应用程序表,其中包含应用程序实例详细信息.. 这个应用程序表在任何地方都被引用..
  • @RTWorkSpace 有什么问题?只需编写一个适当的查询来加载您想要的环境的设置。问题不清楚,并且在句子中间加上多个点会使 更难 理解你在问什么
  • @RTWorkSpace 也许真正的问题不是如何读取特定环境的设置,而是重新组织代码以便它可以在多个环境中工作?也许让它在加载配置设置后关心环境?
  • 这称为多租户。此数据库中的数据之间是否存在任何串扰?如果没有,就在不同的数据库中创建不同的租户

标签: c# sql-server asp.net-mvc entity-framework entity-framework-6


【解决方案1】:

回答你的问题:

select * from AppSettings where businessinstance = x and environemt = 'Test'

表定义:

  • ID (int auto increment) // 可选
  • 业务实例(PK、FK int)
  • 键(PK 唯一约束,字符串)
  • 值(字符串)
  • 环境(PK 字符串/整数)

businessInstance、key 和 environment 应该是唯一约束。 所以像这样创建PK。并且有一个ID可以轻松更新

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2015-06-05
    • 1970-01-01
    • 2011-12-12
    • 2016-01-19
    • 2011-09-13
    • 1970-01-01
    • 2012-02-17
    • 2011-12-17
    相关资源
    最近更新 更多