Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 mvc 即使连接字符串在实体框架中具有错误的数据库名称,DataBase.Exist()也会返回true_Asp.net Mvc_Entity Framework - Fatal编程技术网

Asp.net mvc 即使连接字符串在实体框架中具有错误的数据库名称,DataBase.Exist()也会返回true

Asp.net mvc 即使连接字符串在实体框架中具有错误的数据库名称,DataBase.Exist()也会返回true,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我是EF5.0新手,我故意在Web.Config的连接字符串中设置了错误的数据库名称。i、 e.初始目录=“错误的数据库名称” 现在,我创建了一个布尔属性,用于检测数据库是否存在。如下所示-其中context是EFDbContext bool IsDatabaseExist = context.DataBase.Exists(); 我的问题是,即使我提供的数据库名称错误,为什么这总是显示为true?如果没有向DbContext派生类的构造函数提供连接字符串,那么就没有使用连接字符串。最简单的方

我是EF5.0新手,我故意在Web.Config的连接字符串中设置了错误的数据库名称。i、 e.初始目录=“错误的数据库名称”

现在,我创建了一个布尔属性,用于检测数据库是否存在。如下所示-其中context是EFDbContext

bool IsDatabaseExist = context.DataBase.Exists();

我的问题是,即使我提供的数据库名称错误,为什么这总是显示为true?

如果没有向DbContext派生类的构造函数提供连接字符串,那么就没有使用连接字符串。最简单的方法是在DbContext派生类中创建一个无参数构造函数来调用DbContext构造函数,如下所示:

public class MyContext : DbContext
{
    public MyContext() : base("name=connectionStringName")
    { }
    ...
}
connectionString name是配置文件中连接字符串的名称

如果要检查应用程序正在使用的连接字符串,可以执行以下操作:

((SqlConnection)myContext.Database.Connection).ConnectionString

myContext这里是DbContext派生类的一个实例

你确定上下文没有自动创建数据库吗?嗯,需要检查一下,你能再详细一点吗?如何检查这一点,或者如何强制它不创建任何数据库?请查看您的SQL Server。检查EF的数据库初始值设定项。@SLaks抱歉,但我对使用SQL Server和EF非常陌生。我也在使用SQLExpress。