Я (по-прежнему) пытаюсь следовать онлайн-видеоуроку о том, как использовать Entity Framework с кодовым подходом. Я до тех пор, пока мой EDM проверяет штраф, и настало время фактически создать базу данных. Инструктор использует SQL Server и, очевидно, база данных создается автоматически, когда первая команда запроса (ToList()
) связана с объектом DbContext.
Поскольку я планирую использовать базу данных на базе SQL Server Compact в будущем приложении, я попытался воспроизвести пример учебника с помощью SQL Server Compact 4.0. Я установил пакеты NuGet "EntityFramework.SqlServerCompact" и "Micrososft SQL Server Compact Edition". Очевидно, это приводит к записи нового поставщика в app.config
:
<providers>
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
Но когда я запускаю первую команду запроса, я получаю сообщение об ошибке
Миграции разрешены для контекста "DataModelContext", но база данных не существует или не содержит сопоставленных таблиц. Используйте "Миграции" для создания базы данных и ее таблиц, например, запустив команду "Обновить базу данных" из консоли диспетчера пакетов.
Когда я запускаю Update-Database
, я получаю сообщение:
Нет ожидающих явных миграций.
Применение автоматической миграции: 201310311356014_AutomaticMigration.
Метод запуска семян.
и никакой базы данных не создается, по крайней мере, программа по-прежнему завершает работу с сообщением об ошибке выше.
Не создает ли EF базу данных SQL Server CE автоматически? Если да, то как мне подключить вручную созданный БД с моим приложением?