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

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]

如何从某个配置文件中动态获取Name的值?

非常感谢任何帮助。

有帮助吗?

解决方案

如上所述 http://msdn.microsoft。 COM / EN-US /库/ system.data.linq.mapping.databaseattribute.name.aspx

"仅当连接本身未指定数据库名称时才使用DatabaseName。 所以你可以删除这个属性,一切都会正常工作!

其他提示

我使用了一个包装类来提供

行的上下文
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">

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top