在LINQ to SQL中动态设置数据库名称
-
07-07-2019 - |
题
我正在使用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">
(请注意,接受的答案不再正确:此属性覆盖了我的连接字符串)
不隶属于 StackOverflow