在 ASP.NET 应用程序中,我们有一个 XSD 文件和一个 web.config 文件。
在配置文件中,我们有这样指定的连接字符串:
<add name="DbConnectionString" connectionString="Data Source=sqldb;Initial Catalog=TestDB;Persist Security Info=True;User ID=user;Password=password;" providerName="System.Data.SqlClient"/>
在 XSD 代码隐藏中,每个表适配器选择命令都有以下行(自动生成):
<DbSource ConnectionRef="DbConnectionString (Web.config)" DbObjectName="dbo.CUSTOMER" ...
但是,如果我在设计器中打开表适配器查询并修改 SQL,则后面代码中的行将更改为:
<DbSource ConnectionRef="DbConnectionString (Web.config)" DbObjectName="TestDb.dbo.CUSTOMER" ...
它在 DbObjectName 中指定的表名的开头添加了“TestDb”。
显然,当我们将此网站发布到实时系统时这是错误的,因为即使我们在 web.config 中将连接字符串更改为“LiveDb”,它也会尝试从 TestDB 获取数据。
有没有人遇到过这种行为,有没有办法阻止 XSD 设计器停止为表添加数据库名称的前缀?
谢谢