【发布时间】:2015-10-19 03:20:19
【问题描述】:
通常,在 .NET 应用程序中,您将数据库连接字符串存储在 app.config 中。
对于单个 .exe,只有一个 .exe.config。我们正在使用实体框架,它默认使用与 DbContext 名称匹配的 .config 设置。只要您遵循让应用程序的单个实例与单个数据库通信的常见模式,这一切都可以正常工作。
但我们的问题需要我们有多个应用程序实例,每个实例都有自己不同的数据库连接。
可能的解决方案:
- 创建 .exe 的多个副本,每个副本都有自己的 .config 副本,并在每个副本中放置不同的连接字符串。优势?没有编码变化。坏处?维护所有不同的副本,确保它们都得到更新等。
- 保留一份 .exe 副本和一份 .config 副本,并在 .config 中放置多个连接字符串。然后将命令行参数传递给选择要使用的连接字符串的程序。优势?只需管理一个 .exe。坏处?编码更改,可能有人会弄乱命令行参数。
- 其他一些绝妙的想法,Stack Overflow 上的某个人会向我指出。
有什么想法吗?
我相信人们之前已经处理过这个问题。是否有处理问题的通用方法?
【问题讨论】:
-
它们多久重新运行一次?如果不是经常那么肯定是更好的选择。另外,编码更改需要付出多少努力?
-
这些是后台服务,可以在命令窗口中运行,也可以作为 Windows 服务,由客户选择。无论哪种方式,他们都需要全天候运行。
-
好吧,在这种情况下,它们不会经常重新启动,选项 2 是最好的。添加一些验证输入的选项是否有效,并让它们生效!从长远来看,代码更改将是值得管理的唯一配置!
标签: c# .net entity-framework app-config