我想产生一个小代码,检查,然后我的SQL服务器是可连接的。如果是这样,那么它应该检查数据库是否存在。 让我通过代码来解释它。实体框架代码第一次连接状态检查
这是我的主方法:
private static void Main(string[] args)
{
Database.SetInitializer<MyDbContext>(new DropCreateDatabaseAlways<MyDbContext>());
Console.WriteLine(CheckIfDatabaseExists("Data Source=127.0.0.1\\SQLEXPRESS2;Initial Catalog=SQLTest;Integrated Security=True;Connect Timeout=3"));
Console.WriteLine(CheckIfDatabaseExists("Data Source=127.0.0.1\\SQLEXPRESS;Initial Catalog=SQLTest;Integrated Security=True;Connect Timeout=3"));
Console.WriteLine(CheckIfDatabaseExists("Data Source=127.0.0.1\\SQLEXPRESS2;Initial Catalog=SQLTest;Integrated Security=True;Connect Timeout=3"));
}
你可以想像:有我的本地SQL服务器“SQLEXPRESS”上的现有数据库“sqltest语句”。 但是:没有像'SQLEXPRESS2'这样的服务器!
好的 - 更多的代码。这里说到我的检查方法:
public static DatabaseExistsStatus CheckIfDatabaseExists(String connString)
{
try
{
using (var db = new MyDbContext(connString))
{
bool DbExists = db.Database.Exists();
if (DbExists)
{
// database is existing
return DatabaseExistsStatus.EXISTING;
}
else
{
// config is working, but database does not exist
return DatabaseExistsStatus.NO_DB;
}
}
}
catch (Exception)
{
// no working config
return DatabaseExistsStatus.NO_CONNECTION;
}
}
public enum DatabaseExistsStatus
{
EXISTING,
NO_CONNECTION,
NO_DB
}
开始我的应用程序带来以下结果:
NO_CONNECTION
EXISTING
NO_DB
我很困惑!我期望“NO_CONNECTION,EXISTING,NO_CONNECTION”。
就是这样!我不知道背景中发生了什么以及如何控制。
发生了什么,我该如何解决这个问题?
嘿,那里,谢谢你的帮助。我将文章“代码优先:内部DbContext初始化” - 但不幸的是我没有得到如何解决我的问题的信息;)任何人在这里谁可以给我一些其他的提示? – CodeCannibal 2012-04-23 06:57:28