Использование Entity Framework 4.1 Code-First в существующей базе данных MySQL - PullRequest
2 голосов
/ 28 ноября 2011

Я пытаюсь использовать подход «сначала код» с базой данных MySQL.

Главное, что я не могу удалить и создать БД (в моей хостинговой компании), поэтому я не могу автоматически создавать таблицы в базе данных. Я посмотрел на http://nuget.org/List/Packages/EFCodeFirst.CreateTablesOnly и Entity Framework CTP 4 - Code First Custom Database Initializer , но я не могу заставить его работать с моим MySQL.

Редактировать: В основном я ищу решение, которое работает как указано выше - ТОЛЬКО удаление и создание таблиц, а не самой базы данных с MySQL.

Кому-нибудь повезло с таким подходом?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Это не то, что вы просили напрямую, но это может дать вам аналогичные результаты.

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

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

Если у вас есть хорошее представление о типах изменений, которые вы собираетесь внести в свою БД, тогда вы можете найти решение с первым кодом для сценариев миграции, которое не зависит от EF. Что-то вроде Sharp Migrations , или один из многих похожих инструментов .

0 голосов
/ 28 ноября 2011

Сначала я использую код с существующей базой данных.Все, что вам нужно сделать, это установить строку подключения в файле web.config, как показано ниже.

ПРИМЕЧАНИЕ: - Ваши значения могут отличаться, поскольку вы используете MySQL.

<connectionStrings>
<add name="PriceCompareEntity"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\PriceCompare.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />
</connectionStrings>

Тогда просто убедитесь, что вашклассы моделей соответствуют таблицам в базе данных.База данных не удаляется и создается на лету, кроме случаев, когда о ней тоже сказано, как в следующем случае, я прошу EF создать базу данных в Global.asax

System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData());

Для получения дополнительной информации вы можете посетить Код EF сначала с существующей БД

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...