Публикация Entity-Framework Code-First Migrations без контекста в стартовом проекте

Я строю решение со следующими проектами:

  • Main.Data - проект библиотеки классов
  • Main.API - Asp.NET MVC WebApi - ссылки Main.Data
  • Main - веб-приложение 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 когда я создаю профиль публикации.
Вот что я сделал, чтобы добиться этого:

  1. внутри Main/Web.config Я изменил имя строки подключения на FQN класса контекста: Main.Data.MyContext,
  2. Добавить ссылку из Main проект для Main.Data Проект (который не был нужен до сих пор).

Это делает работу для меня.
Если кто-нибудь получит лучший или более обучающий ответ, я буду рад его услышать.

Другие вопросы по тегам