Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 单元测试连接字符串错误_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 单元测试连接字符串错误

Asp.net 单元测试连接字符串错误,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我在MVC应用程序中工作。我在我的上下文类中有: public ProductsContext() : base("ProductyDB") { Database.SetInitializer<ProductsContext>(null); } 公共产品上下文() :base(“ProductyDB”) { Database.SetInitializer(null); } 我的web.config连接字符串如下所示: <

我在MVC应用程序中工作。我在我的上下文类中有:

    public ProductsContext()
        : base("ProductyDB")
    {
        Database.SetInitializer<ProductsContext>(null);
    }
公共产品上下文()
:base(“ProductyDB”)
{
Database.SetInitializer(null);
}
我的web.config连接字符串如下所示:

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

它在MVC应用程序中工作得很好,但当我使用从这个MVC应用程序添加到这个解决方案中的新单元测试项目中的实体和函数时,就会出现类似tblProduct not available这样的错误

临时解决方法:如果我在ProductsContext中注释以下行:

公共产品上下文() :base(“ProductyDB”) { Database.SetInitializer(null); }


然后将我的web.config连接字符串名称更改为ProductsContext,它就可以工作了。

我遇到了一个与此类似的问题,结果是在
DbContext
类声明中设置了一个过时/不正确的表名。可能是一个独特的错误,但我的代码在除单元测试之外的所有方面都正常工作

public ProductsContext()
    : base("ProductyDB") //This pointed at the wrong database name
{
    Database.SetInitializer<ProductsContext>(null);
}
公共产品上下文()
:base(“ProductyDB”)//这指向了错误的数据库名称
{
Database.SetInitializer(null);
}

我还以为你应该输入的是连接字符串的名字,但它确实是您传递的
初始目录。

我猜您的单元测试应用程序没有包含连接字符串的app.config…您在单元测试中使用什么?我在单元测试项目中添加了app.config,其中包含connectionstring,如:此问题与您的问题很接近[1]: