我有一个包含以下内容的Web应用程序:

  • 一个Web项目(带有一个包含连接字符串的web.config文件-但该Web项目中没有数据访问代码)
  • 一个数据访问项目,该项目使用LINQ-SQL类向Web项目UI提供实体(此项目具有一个设置文件和一个app.config-两者都具有连接字符串)

  • 在我构建和部署时,Bin目录中没有带有数据访问.dll的设置文件或app.config,但是更改web.config文件中的连接字符串不会相应地更改数据库-因此,连接字符串必须被编译为数据访问dll。

    我需要的是整个部署的一个配置文件-网站,数据访问dll,所有内容-具有一个将被使用的连接字符串。目前,各地似乎都在使用或硬编码多个连接字符串。

    我该如何最好地解决此问题?

    谢谢你的帮助。

    最佳答案

    我从来没有遇到过数据访问层(DAL)能够使用web.config文件中的连接字符串的问题。通常,我只是从DAL复制连接字符串部分,然后将其粘贴到web.config中。我正在使用DBML设计器来创建数据上下文。

    如果这对您不起作用,则可以在数据上下文构造函数中指定连接字符串。在您的Web项目中,有一个静态类来加载设置,包括连接字符串,并且在创建DAL对象(或数据上下文,如果直接创建)时,只需将其传递给构造函数即可。

    public static class GlobalSettings
    {
        private static string dalConnectionString;
        public static string DALConnectionString
        {
           get
           {
               if (dalConnectionString == null)
               {
                  dalConnectionString = WebConfigurationManager
                                          .ConnectionStrings["DALConnectionString"]
                                            .ConnectionString;
               }
               return dalConnectionString;
           }
        }
    }
    ...
    
    using (var context = new DALDataContext(GlobalSettings.DALConnectionString))
    {
       ...
    }
    

    关于.net - .NET/LINQ-SQL/ASP.NET中的连接字符串 hell ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/236412/

    10-15 05:28