我正在使用LINQ to SQL从我的应用程序连接到数据库。当我将环境从生产更改为暂存时,我可以在web.config中更新我的连接字符串。 但是,当环境发生变化时,我还需要更新一个值。那是数据库名称。在LINQ to SQL设计器文件中,数据库名称被称为属性,如 -
[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]
如何从某个配置文件中动态获取Name的值?
非常感谢任何帮助。
答案 0 :(得分:4)
如上所述 http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.databaseattribute.name.aspx
“仅当连接本身未指定数据库名称时才使用DatabaseName。” 所以你可以删除这个属性,一切都会正常工作!
答案 1 :(得分:0)
我使用了一个包装类来提供
行的上下文public DataContext Context = new DataContext(SqlConnectionString); //much simplified
答案 2 :(得分:0)
我通过编辑Visual Studio外部的.dbml文件解决了这个问题(设计人员似乎不允许访问DatabaseAttribute)并在此处删除name属性:
<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
(请注意,接受的答案不再正确:此属性覆盖了我的连接字符串)