Я использую следующий метод с тех пор, как 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 Data Provider
ErrorCode=-2147467259
HResult=-2147217865
NativeError=0
StackTrace: в System.Data.SqlServerCe.SqlCeCommand. ProcessResults(Int32 hr)
Внутреннее исключение:
Если я перехожу к Debug - Exceptions и проверяю Thrown для «Common Language Runtime Exceptions», это приводит к остановке выполнения, и я получаю указанное выше исключение. Если я сниму этот флажок, база данных, кажется, будет создана правильно, но я получаю четыре повтора следующих сообщений об ошибках в моем окне вывода:
Исключение первого шанса типа "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» произошло в системе. Data.Entity.dll
Размещение блока try/catch вокруг dbContext.Database.Create()
не дает никакого эффекта.
Моя цель — создать полностью пустую базу данных, а затем заполнить ее данными вручную. Я не хочу использовать новую функцию миграции Entity Framework.
Что я могу сделать, чтобы устранить исключения первого шанса?