自从 Entity Framework Code First 可用以来,我一直在使用以下方法:
public virtual void CreateDatabase()
{
var dbContext = _dbContextLocator.Current;
dbContext.Database.Delete();
dbContext.Database.Create();
dbContext.Database.Initialize(true);
}
最近,我注意到当dbContext.Database.Create()
被击中时,我得到以下异常:
System.Data.SqlServerCe.SqlCeException 发生
Message=指定的表不存在。[ __MigrationHistory ]
Source=SQL Server Compact ADO.NET 数据提供程序错误代码
=-2147467259
HResult=-2147217865
NativeError=0
StackTrace:在 System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
InnerException:
如果我去调试 - 异常并检查“公共语言运行时异常”的抛出,这会导致执行停止,我得到上述异常。如果我取消选中它,数据库似乎已正确创建,但在我的输出窗口中出现以下错误语句的四次重复:
System.Data.SqlServerCe.dll 中发生“System.Data.SqlServerCe.SqlCeException”类型的第一次机会异常 System.Data.SqlServerCe.dll 中发生“System.Data.SqlServerCe.SqlCeException”类型的 第
一次机会异常
System.Data.SqlServerCe.Entity.dll 中发生“System.Data.SqlServerCe.SqlCeException”类型的
机会异常 System.Data.Entity.dll 中发生“System.Data.EntityCommandExecutionException”类型的
第一次机会异常 第一次机会异常System.Data.Entity.dll 中发生“System.Data.EntityCommandExecutionException”类型的“System.Data.EntityCommandExecutionException”
类型的第一次机会异常发生在 System.Data.Entity.dll
放置一个 try/catch 块dbContext.Database.Create()
没有任何效果。
我的目标是创建一个完全空白的数据库,然后手动填充数据。我不想使用实体框架的新迁移功能。
我能做些什么来消除第一次机会异常?