即使连接字符串在Entity Framework中具有错误的数据库名称,DataBase.Exist()也返回true

时间:2012-10-14 18:18:39

标签: asp.net-mvc entity-framework

我是EF 5.0的新手,我故意在Web.Config中的连接字符串中设置错误的数据库名称。即初始目录=“错误的数据库名称”;

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

bool IsDatabaseExist = context.DataBase.Exists();

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

1 个答案:

答案 0 :(得分:1)

如果没有为DbContext派生类的构造函数提供连接字符串,则表明您没有使用连接字符串。最简单的方法是在DbContext派生类中创建一个无参数构造函数,该类调用DbContext构造函数 - 如下所示:

public class MyContext : DbContext
{
    public MyContext() : base("name=connectionStringName")
    { }
    ...
}

connectionString name是配置文件中连接字符串的名称。

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

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

myContext这里是DbContext派生类的实例