2011-04-08 43 views
1

我正在使用MVC应用程序。我有这个在我的上下文类:单元测试连接字符串错误

public ProductsContext() 
     : base("ProductyDB") 
    { 
     Database.SetInitializer<ProductsContext>(null); 
    } 

我的web.config连接字符串看起来是这样的:applicationbut尽快

<add 
     name="ProductyDB" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=.\SQLSERVER2008R2;Initial Catalog=ProductyDB;Integrated Security=True"/> 

它工作正常在MVC为我所用的实体和功能在新从这个MVC应用程序添加到此解决方案的单元测试项目,我得到像tblProduct这样的错误不可用。

临时解决方法:如果我的评论从我ProductsContext下面几行:

公共ProductsContext() :基地( “ProductyDB”) { Database.SetInitializer(NULL); }

并将我的web.config连接字符串名称更改为ProductsContext,它的工作原理。

+1

我的猜测是,你的单元测试的应用程序没有一个包含连接字符串的app.config ...你在单元测试中使用了什么? – Jonas 2011-04-08 16:34:10

+0

我已经在单元测试项目中添加了一个app.config,并在其中包含如下连接字符串: DotnetSparrow 2011-04-08 16:39:21

+0

此问题已接近您的 [1]:http://stackoverflow.com/questions/9471148/testing-connection-string-is-missing – user1706449 2012-12-18 08:33:30

回答

0

我有一个类似于这个问题,事实证明我有一个DbContext类声明中设置过时/不正确的表名称。可能是一个独特的错误,但我的代码除了单元测试以外都能正常工作。

public ProductsContext() 
    : base("ProductyDB") //This pointed at the wrong database name 
{ 
    Database.SetInitializer<ProductsContext>(null); 
} 

我以为是你应该把在ConnectionString的名字,但它确实是Initial Catalog你正经过。