Вопрос

Я использую паттерн-код в основе Entity Framework v4.1. Одна из вещей, которые я наткнулся на то, что выглядит действительно странно, заключается в том, что всякий раз, когда вы вносите какие -либо изменения в модели, база данных просто отброшена и создает новые. Это очень неопрятно, потому что каждый раз, когда падает и воссоздание базы данных не является идеальным решением. Все мои тестовые данные и все теряется. Я знаю, что есть метод с именем SEED, и вы можете поместить записи тестовых данных для вставки туда. Однако может быть несколько 100 -х годов тестовых записей, и невозможно поместить каждую запись методом семян. Есть ли другая альтернатива этому? Я бы вообще не использовал код, но обязательно использовать его в проекте.

Это было полезно?

Решение

Нет, в настоящее время нет другого метода, и сам EF, вероятно, никогда не поддержат ничего большего, чем бросить / воссоздать. Как выбрала команда Ado.net, использует отдельный инструмент для обновления базы данных под названием Миграция. Анкет Миграции в настоящее время доступны только как CTP = они не подходят для реального использования, а для тестирования и сбора обратной связи обратной связи в команду EF.

В качестве обходного пути вы можете иметь внешний сценарий популяции данных и вызвать его из семян - он будет намного проще для технического обслуживания.

Другие советы

Вы можете настроить EF, чтобы попытаться изменить вашу базу данных, если ее еще не существует.

Database.SetInitializer<YourDataContext>(new CreateDatabaseIfNotExists<YourDataContext>());
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top