在LINQ to SQL中动态设置数据库名称

时间:2009-09-14 12:20:10

标签: linq-to-sql dynamic-data

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

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

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

非常感谢任何帮助。

3 个答案:

答案 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">

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