代码之家  ›  专栏  ›  技术社区  ›  Manoj Attal

在LINQ中动态地将数据库名称设置为SQL

  •  5
  • Manoj Attal  · 技术社区  · 16 年前

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

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

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

    任何帮助都非常感谢。

    3 回复  |  直到 7 年前
        1
  •  4
  •   sherry    16 年前

    如上文所述 http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.databaseattribute.name.aspx

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

        2
  •  0
  •   wefwfwefwe    16 年前

    我使用了一个包装类来沿着

    public DataContext Context = new DataContext(SqlConnectionString); //much simplified
    
        3
  •  0
  •   NH.    7 年前

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

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

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

    推荐文章