【问题标题】:Database connection from web.config in other project来自其他项目中 web.config 的数据库连接
【发布时间】:2016-06-22 06:50:00
【问题描述】:

我正在努力获得在其他项目中处理连接字符串的正确/最佳方式:

我在 VS 解决方案中有两个项目:

  1. 项目一:网站(asp.net)

    • 与 web.config 有一个 db 连接字符串
  2. 项目2:有一些类

    • 带数据层(在项目 1 或项目 x 中访问)

在项目2中设置连接字符串的正确方法是什么?

项目 2 有一个静态类,其功能如下:

public static List<T> GetData();

我是否应该始终将连接字符串作为变量传递:

public static List<T> GetData(string connectionString);

所以语法像 i.e.:

var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionStringName"];
var list = ClassX.GetData(connectionString);

或者是否有可能以其他方式在某个地方进行一般设置?

还是我的完整设置有误? :)

【问题讨论】:

  • 项目2是类库吗?
  • 您在服务层中使用 EDMX 吗?
  • 在项目2中使用具有通用方法的通用类,从自己的项目中获取连接字符串,然后添加对项目的引用并调用此方法
  • 是的,它是一个类库

标签: c# asp.net


【解决方案1】:

类库没有自己的配置。他们使用正在使用的可执行文件的配置。

这意味着您应该能够使用相同的代码,并且它会从配置中读取设置(假设它在那里)。

【讨论】:

    【解决方案2】:

    我们通常将connection string 放在网站中(主入口点),我们可以从class library 中读取它(项目2)。

    只需在您的类库中添加对System.Configuration 的引用,您就可以从项目1 中读取config,就像您直接执行项目1 中的代码一样。

    【讨论】:

      【解决方案3】:

      一些好的方法描述如下:

      把常用的配置设置放到machine.config中如图here

      还可以看看这个,它显示了如何在同一解决方案中的多个项目之间共享相同的 app.config 文件(假设您可以在其中放置连接字符串)。

      Sharing App.config between projects

      【讨论】:

      • 我们也将 machine.config 用于常见的配置项(包括连接字符串)。
      • @Moose,感谢您的支持。我认为这是有道理的。
      【解决方案4】:

      在两个项目中定义连接字符串并不重要,只需在您的默认项目的项目1:网站(asp.net)的配置文件中添加即可。

      <connectionStrings>
          <add name="Context" connectionString="Server=ServerName; User ID=sa; Password=123; Database = DBName;"
            providerName="System.Data.SqlClient" />
        </connectionStrings>
      

      更多信息:http://www.connectionstrings.com/

      【讨论】:

        猜你喜欢
        • 2017-07-24
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 2013-05-02
        • 2015-04-24
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        相关资源
        最近更新 更多