【发布时间】:2012-02-20 16:37:11
【问题描述】:
我创建了新项目并向其中添加了最新的实体框架(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;}
}
更新 1
经过一些测试,我意识到应用程序正在从 Visual Studio 抛出未处理的异常并在 Visual Studio 中中断。异常是 System.Data.EntityCommandExecutionException。一旦我忽略了这个期望并且没有停止代码执行,就创建了数据库。
更新 2
在使用数据库又过了几个小时后,我发现从控制台使用 Enable-Migrations 选项和 Update-Database 也可以解决这个问题。它在应用程序启动之前创建数据库,并且不会在 Visual Studio 中中断。
【问题讨论】:
-
看起来有些东西不同步 stackoverflow.com/questions/3986160/…
-
您是否手动创建了课程?或者你使用过向导
-
为了测试,我只创建了一个名为 Test 的类,TestId 为 [Key],字符串属性名为 name。没有别的了。
-
确实似乎发生了一些异常(仅当您启用 CLR 异常调试/异常时才捕获) - 禁用也为我解决了(没有其他帮助)。
标签: c# .net entity-framework