2011-04-08 55 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你正經過。