我在MVC应用程序中工作。我在上下文课中有这个:
public ProductsContext()
: base("ProductyDB")
{
Database.SetInitializer<ProductsContext>(null);
}
我的web.config连接字符串如下所示:
<add
name="ProductyDB"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLSERVER2008R2;Initial Catalog=ProductyDB;Integrated Security=True"/>
它在MVC应用程序中工作正常但是当我在这个MVC应用程序中添加到此解决方案的新单元测试项目中使用实体和函数时,我得到的错误就像tblProduct不可用。
临时解决方法:如果我对ProductsContext中的以下行进行注释:
public ProductsContext() :base(“ProductyDB”) { Database.SetInitializer(NULL); }
并将我的web.config连接字符串名称更改为ProductsContext,它可以正常工作。
答案 0 :(得分:0)
我遇到了与此问题类似的问题,结果发现我在DbContext
类声明中设置了过时/不正确的表名。可能是一个独特的错误,但是除了单元测试之外,我的代码工作正常。
public ProductsContext()
: base("ProductyDB") //This pointed at the wrong database name
{
Database.SetInitializer<ProductsContext>(null);
}
我认为这是你应该放入的ConnectionString名称,但它确实是你传入的Initial Catalog
。