2014-11-09 96 views
0

我正在开发一个VS2012解决方案,它有一个ASP.NET MVC 4.0项目和多个类库,如我的经理,提供者和DataAccess项目。我的dbContext类是在DataAccess项目中定义的。从我的DataAccess库项目中的app.config读取连接字符串,用于dbContext

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

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


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文件还,但话又说回来,我得到同样的错误(附图片):

enter image description here

可有人请指导我...

感谢哈日

回答

0

我觉得你的错在于在池,所以尽量 池=真也请务必删除您有一个倒逗号,'

有一个铁道部你可能想研究的一点,我认为Pooling是默认启用的,所以设置Pooling = True,虽然这是明确的,但如果我没有记错,它没有任何作用,而Pooling = False确实有效。

+0

嘿路易斯,thnx很多回复和看我的问题。这个单引号(')是一个问题。一旦我删除它,连接字符串开始按照我的web.config文件中的预期工作。 – Hari 2014-11-10 08:30:55

+0

但是,如果我使用相同的连接。我的app.config文件中的字符串出现以下错误:“建立到SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。指定的LocalDB实例不存在。“ – Hari 2014-11-10 08:34:33

+0

由于任何机会,你认为自从我的web.config文件现在没有任何连接字符串字段,我的应用程序可能试图从appHost.config中读取它?loaclDB引用建议它尝试使用SQLServerExpress – Hari 2014-11-10 08:35:16

0

为了使它工作,你可以尝试调用基类的构造是这样的:

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

在这种情况下,后端metadataSource将是您的MyDbContext类中的字段,其持有的配置后端和映射的配置。

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

相关问题