我的解决方案有两个项目。一个类库,用于通过存储库类从 Entity Framework .edmx 文件生成数据。 App.Config 文件 connectionString 与我的第二个 ASP.Net 4.0 Web 表单项目中的 Web.config 匹配。
当部署到测试服务器时,我修改两个连接字符串以指向测试数据库 (DataSource=TestDB)。当部署到实时站点时,我将两者修改为指向实时数据库 (DataSource=LiveDB)。
在 Site.Master 的顶部,我在标签控件中以红色字母显示“您已连接到 TEST 数据库”。我有条件地切换标签的 .Visible 属性 if (context.Connection.DataSource.Contains("TestDB"))
在开发过程中我注意到一些奇怪的事情。当 Web.config 指向 TestDB 时,如果我忘记使 App.config 匹配(并且它指向 LiveDB),则会出现“已连接到 TEST”警告,但会显示来自 LiveDB 的数据。
这告诉我存储库(类库)使用 App.Config,但在 Web 表单项目中创建的数据上下文使用 Web.config 连接字符串。那是对的吗?我担心如果我部署到测试站点并忘记将 App.Config 指向 TestDB,实时数据将被错误更新。
所以我的问题是,在这种情况下...显示始终准确的“连接到测试数据库”通知的最佳方式是什么?
最佳答案
默认情况下,类库不会使用任何 app.config
文件。
它将使用使用它的应用程序上下文中的 .config
文件 - 对于 Web 应用程序,该文件将是 web.config
文件.
关于asp.net - web.config 和 app.config 中不同 Entity Framework 连接字符串的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007053/