代码之家  ›  专栏  ›  技术社区  ›  user69889

如何将web.config的自定义配置类与Linq dbml类一起使用

  •  1
  • user69889  · 技术社区  · 17 年前

    我有一个web项目,它使用自定义配置类在web.config中存储应用程序设置。我这样做是为了能够存储和访问web.config中基于服务器名称的配置设置。这样,当项目从开发转移到登台,再到生产时,我就不必记得更改web.config设置,如连接字符串和其他服务器之间可能不同的设置。这些类将根据其部署的服务器从web.config检索正确的配置设置。

    这相当有效。但是,现在我使用生成的dbml类将项目转换为使用Linq。这很好,但是生成的类坚持使用web.config中的简单连接字符串。由于这些类是自动生成的,我不能简单地更改代码以使用自定义配置类。有人能解释一下如何让生成的类调用我的自定义对象来检索正确的连接字符串吗?

    谢谢

    5 回复  |  直到 17 年前
        1
  •  1
  •   Quintin Robinson    17 年前

    更好的做法是显式地向DataContext构造函数提供连接字符串。这样,您的应用程序就可以通过webconfig助手获取正确的连接字符串,并且datacontext始终可以提供绝对正确的连接字符串。而不是依赖上下文从webconfig中选择合适的。

        2
  •  1
  •   James Curran    17 年前

    这个 <connectionStrings> web.config文件的元素可以采用configSource属性,该属性指定保存该节数据的XML文件的名称。我将其设置为:

     <connectionStrings configSource="connections.config" />
    

    在每台电脑上放置一个独特的connections.config,其中包含特定于环境的信息。

        3
  •  0
  •   Lazarus    17 年前

    对不起,我没有直接的答案。

        4
  •  0
  •   hunter    17 年前

    public MyDataContext() : 
            base(global::System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString, mappingSource)
    {
        OnCreated();
    }
    

    您可以手动修改.designer.cs部分类文件,并使用自己的上下文构造函数重写该默认上下文构造函数。

        5
  •  0
  •   Denis Troller    17 年前

    您可以简单地将连接字符串作为参数传递给DataContext类的构造函数。