我有一个代码,第一个DbContext应该是创建一个新数据库,但经过多次尝试,数据库不存在,我在代码中ctx.Statuses.ToList()
得到一个Sequence不包含任何元素错误下面:
static void Main(string[] args)
{
var ctx = new EtbDbContext();
EtbDbContext.Init();
var s = ctx.Statuses.ToList();
var l = ctx.Logins.ToList();
var u = ctx.Users.ToList();
}
Init()
方法说:
public static void Init()
{
Database.SetInitializer(new DropCreateDatabaseAlways<EtbDbContext>());
}
当我收到错误并在立即窗口中检查我的连接字符串时,它是按配置和预期的:
?ctx.Database.Connection {System.Data.SqlClient.SqlConnection} .. ConnectionTimeout:15 数据库:“EtbCodeFirst” DataSource:“BRADY-PC” ServerVersion:'ctx.Database.Connection.ServerVersion'引发了类型'System.InvalidOperationException'的异常 州:已关闭
数据源BRADY-PC上不存在此类数据库,因此在尝试查询数据库之前我应该收到连接错误。我很困惑,真的希望有人可以在我今天回到DB第一次开发之前提供帮助。
我还检查过我的(localdb)但仍然没有数据库。甚至没有其他地方甚至是流氓EF代码来创建一个该死的DB。
答案 0 :(得分:0)
在打开上下文之前调用.Init ...
static void Main(string[] args)
{
EtbDbContext.Init();
using (var ctx = new EtbDbContext())
{
var s = ctx.Statuses.ToList();
var l = ctx.Logins.ToList();
var u = ctx.Users.ToList();
}
}