Как получить «код первым» для обновления таблиц в MySQL? - PullRequest
2 голосов
/ 01 сентября 2011

При наличии c # .net4 mvc3 и entity-framework 4.1 и MySql 5.0.67 с использованием Connector / NET 6.4.3 в качестве стека.Что мне нужно настроить, чтобы приложение обновляло таблицы в MySql при изменении класса домена?

Кроме того, есть ли способ создания sql / DDL из классов домена?

Я хочу использовать метод «сначала код», но я не могу заставить его обновлять / создавать таблицы, когда база данных уже существует.

При изменении поставщика соединения и строки наSQLServer CE создает базу данных и таблицы.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Я ответил на аналогичный вопрос здесь: Entity Framework 4.1 Code Сначала не создаются таблицы

В основном это включает в себя:

  • Создание YourDbContextInitializer, котороенаследуется от DropCreateDatabaseIfModelChanges<YourDbContext>
  • Переопределите метод Seed() в YourDbContextInitializer, чтобы заполнить базу данных начальными данными.
  • Переопределите метод OnModelCreating(ModelBuilder modelBuilder) для YourDbContext и настройте инициализатор базы данных.используя Database.SetInitializer(new YourDbContextInitializer());
0 голосов
/ 01 сентября 2011

Я пытаюсь сделать что-то подобное, за исключением того, что я пытаюсь использовать SQLite. Я только что нашел эту страницу: http://weblogs.asp.net/manavi/archive/2011/05/17/associations-in-ef-4-1-code-first-part-6-many-valued-associations.aspx, в которой есть раздел под названием «Получить код DDL, сгенерированный вначале SQL», и похоже, что он должен помочь с генерацией SQL для создания базы данных.

Посмотрели ли вы метод Database.SetInitializer (http://msdn.microsoft.com/en-us/library/gg679461%28v=vs.103%29.aspx), он использует один тип DropCreateDatabaseIfModelChanges (http://msdn.microsoft.com/en-us/library/gg679604%28v=vs.103%29.aspx).. Это также работает для меня с SQLServer CE, но я думаю, что обнаружил, что текущая версия System.Data.SQLite пока не поддерживает это, поэтому мне придется создать базу данных другим способом.

Вот еще пара вопросов, которые могут помочь, хотя я не уверен, что они могут быть применены к коду в первую очередь.

Entity Framework 4.1 - Отслеживание и ручное развертывание изменений DDL с использованием T-SQL Entity Framework 4 - Обновить схему базы данных из модели. Без вытирания данных таблицы

Удачи с этим. Я публикую свой прогресс в области кодирования в целом (включая EF 4.1, как я с ним работаю) на моем веб-сайте kihonkai.com, если вы заинтересованы в том, чтобы взглянуть.

...