我是 EF 5.0 的新手,我故意在 Web.Config 的连接字符串中设置了错误的数据库名称。即初始目录=“错误的数据库名称”;
现在我创建了一个布尔属性,它检测数据库是否存在。如下所示 - 其中 context 是 EFDbContext。
bool IsDatabaseExist = context.DataBase.Exists();
我的问题是,即使我提供的数据库名称是错误的,为什么这总是正确的?
我是 EF 5.0 的新手,我故意在 Web.Config 的连接字符串中设置了错误的数据库名称。即初始目录=“错误的数据库名称”;
现在我创建了一个布尔属性,它检测数据库是否存在。如下所示 - 其中 context 是 EFDbContext。
bool IsDatabaseExist = context.DataBase.Exists();
我的问题是,即使我提供的数据库名称是错误的,为什么这总是正确的?
如果您没有向 DbContext 派生类的构造函数提供连接字符串,则您没有使用连接字符串。最简单的方法是在调用 DbContext 构造函数的 DbContext 派生类中创建一个无参数构造函数 - 如下所示:
public class MyContext : DbContext
{
public MyContext() : base("name=connectionStringName")
{ }
...
}
connectionString name 是配置文件中连接字符串的名称。
如果要检查应用程序使用的连接字符串,可以执行以下操作:
((SqlConnection)myContext.Database.Connection).ConnectionString
这里的 myContext 是 DbContext 派生类的一个实例