【问题标题】:Read connection string from app.config in my DataAccess library project for dbContext在我的 DataAccess 库项目中为 dbContext 从 app.config 读取连接字符串
【发布时间】:2015-01-05 15:17:16
【问题描述】:

我正在开发一个 VS2012 解决方案,该解决方案有一个 ASP.NET MVC 4.0 项目和多个类库,如我的管理器、提供程序和 DataAccess 项目。我的 dbContext 类是在 DataAccess 项目中定义的。

我的目标是限制 DataAccess 项目的 App.Config 文件中的连接字符串信息。我试图避免在项目中的其他任何地方指定 connectionString,因为它是我的 DataAccess 类将与 DB 交互。

现在,如果我通过硬编码将我的连接字符串指定为我的 dbContext 类,我的项目工作正常并且能够从 DB 读取数据。


    public MyDbContext()
        : base(@"Data Source=MYLAPTOP\SQL2012MAIN;Initial Catalog=MyDB;User ID=sa;Password=*****")
    {

    }

但是如果我像这样在 app.config 文件中指定连接字符串:

<connectionStrings>
<add name="MyDBConnection" connectionString="Data Source=MYLAPTOP\SQL2012MAIN;Initial Catalog=MyDB;User ID=sa;Password=*****;Connect Timeout=200; pooling='true" providerName="System.Data.SqlClient" />
</connectionStrings>

并在我的 dbContext 类中使用它,如下所示:

public MyDbContext()
            : base("MyDBConnection")
        {

        }

它不起作用。我也尝试在我的 MVC 项目的 web.config 文件中使用相同的连接字符串,但是我又遇到了同样的错误(附图):

谁能指导我...

谢谢哈里

【问题讨论】:

    标签: connection-string app-config data-access


    【解决方案1】:

    要使其正常工作,您可以尝试像这样调用基本构造函数:

    public MyDbContext()
        : base("MyDBConnection", backend, metadataSource)
    {
    }
    

    在这种情况下,backendmetadataSource 将是 MyDbContext 类中的字段,它们保存后端的配置和映射的配置。

    Creating OpenAccessContext 文章中,您将找到有关上下文设计的更多详细信息。

    【讨论】:

      【解决方案2】:

      我认为你的错在于池,所以试试 Pooling=True 还确保删除您拥有的单个引号,'

      还有一点你可能想研究一下,我认为 Pooling 默认是启用的,所以设置 Pooling=True,虽然这是明确的,如果我没记错的话,它没有效果,而 Pooling=False 有有效果。

      【讨论】:

      • 嘿 Louis,非常感谢您回复和查看我的问题。那个单引号(')是一个问题。一旦我删除它,连接字符串就开始在我的 web.config 文件中按预期工作。
      • 但是,如果我使用相同的 conn.我的 app.config 文件中的字符串我收到以下错误:“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确并且SQL Server 配置为允许远程连接。(提供程序:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。指定的 LocalDB 实例不存在。"
      • 您是否认为由于我的 web.config 文件现在没有任何连接字符串字段,我的应用程序可能会尝试从 appHost.config 或其他内容中读取它? loaclDB 参考表明它正在尝试使用 SQLServerExpress
      • 您应该将连接字符串添加到 web 项目以及 web.config 中。
      猜你喜欢
      • 2014-09-16
      • 2010-12-22
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 2013-02-23
      • 2012-04-09
      • 2012-02-19
      相关资源
      最近更新 更多