Entity Framework Codeが最初に利用可能になって以来、私は次の方法を使用しています。
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 ServerCompactADO.NETデータプロバイダー
ErrorCode=-2147467259
HResult = -2147217865
NativeError = 0
StackTrace:at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
InnerException:
Debug-Exceptionsに移動し、Thrown for "Common Language Runtime Exceptions"をチェックすると、実行が停止し、上記の例外が発生します。チェックを外すと、データベースは正しく作成されているように見えますが、出力ウィンドウに次のエラーステートメントが4回繰り返されます。
タイプ'System.Data.SqlServerCe.SqlCeException'のファーストチャンス例外がSystem.Data.SqlServerCe.dllで発生しましたタイプ'System.Data.SqlServerCe.SqlCeException'の ファースト
チャンス例外がSystem.Data.SqlServerCe.dllで発生しました
タイプ'System.Data.SqlServerCe.SqlCeException'のチャンス例外がSystem.Data.SqlServerCe.Entity.dllで発生しました
タイプ'System.Data.EntityCommandExecutionException'のファーストチャンス例外がSystem.Data.Entity.dllで発生しまし
たファーストチャンス例外タイプ「System.Data.EntityCommandExecutionException」がSystem.Data.Entity.dllで発生しましたタイプ「System.Data.EntityCommandExecutionException」
の最初のチャンスの例外がSystem.Data.Entity.dllで発生しました
try/catchブロックを配置しdbContext.Database.Create()
ても効果はありません。
私の目標は、完全に空白のデータベースを作成し、それを手動でデータで埋めることです。EntityFrameworkの新しい移行機能を使用したくありません。
ファーストチャンスの例外を排除するにはどうすればよいですか?