我创建了新项目并添加了最新的实体框架(版本4.3).我像以前的EF版本一样创建了类和上下文.但是,在第一次运行时应该创建数据库(在我的情况下是SQL Server 2005),我收到以下错误:
执行命令定义时发生错误.有关详细信息,请参阅内部异常
具有以下内部异常:
无效的对象名称'dbo .__ MigrationHistory'.
据我了解,此表适用于迁移,但如果没有数据库,则此表不存在.难道我做错了什么?
更多信息:出于测试目的,我只创建了一个类:
public class Test
{
[Key]
public int TestId { get; set;}
public string Name {get; set;}
}
public class Context : DbContext
{
public Context() : base("MyConnection")
{
}
public DbSet<Test> Tests { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
更新1
经过一些测试后,我意识到应用程序正在从视觉工作室抛出未处理的异常并在视觉工作室中中断.System.Data.EntityCommandExecutionException是一个例外.一旦我忽略了这个期望并且没有停止代码执行,就创建了数据库.
更新2
在使用数据库几个小时之后,我发现使用Enable-Migrations选项和来自控制台的Update-Database也正在解决这个问题.它在应用程序启动之前创建数据库,并且不会在Visual Studio中中断.