Публикация Entity-Framework Code-First Migrations без контекста в стартовом проекте
Я строю решение со следующими проектами:
Main.Data
- проект библиотеки классовMain.API
- Asp.NET MVC WebApi - ссылки Main.DataMain
- веб-приложение Asp.NET MVC 4 - ссылки Main.API
у меня есть MyContext : DbContext
класс, расположенный внутри Main.Data
проект. У меня тоже успешно выдает enable-migrations
консольная команда на Main.Data
проект, и я успешно использую LocalDB в качестве сервера SQL для моих данных и для upgrade-database
Миграции.
Проблема начинается, когда я пытаюсь опубликовать Main
проект для веб-сайта Windows Azure.
Профиль публикации, который автоматически создается с использованием Import from a Windows Azure web site
не распознает, что я использую решение Entity Framework Code First, и поэтому я не могу включить Execute Code First Migrations
как я хотел бы.
Вместо этого я могу только включить Update database
скрипты.
Я использую Visual Studio 2012 с Entity Framework 5.0.0 (с самого начала проекта).
Просто чтобы проверить, я попытался добавить временный MyContext
класс внутри Main
Проект и enable-migrations
на Main
проект, и после этого мой профиль публикации автоматически обнаружил Entity Framework Code-First.
Это, конечно, не решение (или это?)
Вот некоторые соответствующие темы:
- Это базовый учебник.
- Это объясняет варианты развертывания, но не устраняет неполадки.
- Это на самом деле дает несколько идей, чтобы попробовать, но все кажется неестественным.
Я ищу чистое стабильное решение. Должен ли я поместить свой класс Context в основной проект?
заранее спасибо
1 ответ
Теперь я могу включить Execute Code First Migrations
когда я создаю профиль публикации.
Вот что я сделал, чтобы добиться этого:
- внутри
Main/Web.config
Я изменил имя строки подключения на FQN класса контекста:Main.Data.MyContext
, - Добавить ссылку из
Main
проект дляMain.Data
Проект (который не был нужен до сих пор).
Это делает работу для меня.
Если кто-нибудь получит лучший или более обучающий ответ, я буду рад его услышать.