在web.config和app.config中出现不同的Entity Framework连接字符串

时间:2012-08-17 13:46:04

标签: asp.net entity-framework configuration connection-string

我的解决方案有两个项目。用于通过存储库类从Entity Framework .edmx文件生成数据的类库。 App.Config文件connectionString匹配我的第二个ASP.Net 4.0 Web表单项目中的Web.config。

我将BOTH connectionStrings修改为在部署到测试服务器时指向测试数据库(DataSource = TestDB)。当部署到实际站点时,我将其修改为指向实时数据库(DataSource = LiveDB)。

在Site.Master的顶部,我在标签控件中以红色字母“您连接到TEST数据库”显示。我有条件地切换标签if (context.Connection.DataSource.Contains("TestDB"))

的.Visible属性

在开发过程中我发现了一些奇怪的东西当Web.config指向TestDB时,如果我忘记使App.config匹配(并指向LiveDB),则会出现“连接到TEST”警告但显示来自LiveDB的数据。

这告诉我存储库(类库)使用App.Config,但在Web表单项目中创建的数据上下文使用Web.config connectionString。那是对的吗?我担心如果部署到测试站点并忘记将App.Config指向TestDB,实时数据将被错误更新。

所以我的问题是,在这种情况下...... 显示始终准确的“连接到测试数据库”的通知的最佳方式是什么?

2 个答案:

答案 0 :(得分:4)

默认情况下,类库不会使用任何app.config文件。

如果Web应用程序是.config文件,它将使用应用程序上下文中的web.config文件。

答案 1 :(得分:0)

当应用运行时,无论在何处创建上下文,它都会使用web.config中的那个。

为什么不在您的实时应用程序上设置防火墙以阻止(a)除实时网络服务器以外的任何地方的访问,或(b)尤其是您的测试位置?