Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql 在LINQ中将数据库名称动态设置为SQL_Linq To Sql_Dynamic Data - Fatal编程技术网

Linq to sql 在LINQ中将数据库名称动态设置为SQL

Linq to sql 在LINQ中将数据库名称动态设置为SQL,linq-to-sql,dynamic-data,Linq To Sql,Dynamic Data,我正在使用LINQtoSQL从我的应用程序连接到数据库。当我将环境从生产环境更改为临时环境时,我可以在web.config中更新连接字符串。 但当环境发生变化时,我还需要更新一个值。这是数据库名。在LINQtoSQLDesigner文件中,数据库名称被称为属性,如- [System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")] 如何从某个配置文件中动态提取名称的值 非常感谢您的帮助。如图所示 “仅当连接本身未指定数据库名称时,

我正在使用LINQtoSQL从我的应用程序连接到数据库。当我将环境从生产环境更改为临时环境时,我可以在web.config中更新连接字符串。 但当环境发生变化时,我还需要更新一个值。这是数据库名。在LINQtoSQLDesigner文件中,数据库名称被称为属性,如-

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]
如何从某个配置文件中动态提取名称的值

非常感谢您的帮助。

如图所示

“仅当连接本身未指定数据库名称时,才使用数据库名称。”
所以你可以删除这个属性,一切都会好起来的

我使用了一个包装器类来提供上下文

public DataContext Context = new DataContext(SqlConnectionString); //much simplified

我通过在Visual Studio外部编辑.dbml文件(设计器似乎不允许访问DatabaseAttribute)并删除此处的name属性修复了此问题:

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">


(请注意,接受的答案不再正确:此属性覆盖了我的连接字符串)

我发现从dbml.cs文件中删除数据库属性时,没有给出任何错误或异常。因此,此属性不是强制的,而是由设计器默认添加的。您可以拒绝接受接受的答案吗?这已不再正确。