Подтвердить что ты не робот

Ошибка установки Enable-Migrations

У меня возникает проблема при включении миграции в одном из моих проектов. Я выполняю команду Enable-Migrations из консоли Nuget и получаю сообщение об ошибке:

Exception calling "SetData" with "2" argument(s): "Type 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject' in assembly 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At D:\Solution\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:391 char:5
+     $domain.SetData('startUpProject', $startUpProject)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException

Кто-нибудь сталкивался с этой проблемой, прежде чем это может указать мне в правильном направлении.

Окружающая среда:
.NET 4.5
Entity Framework 5
Обновление Visual Studio 2012 2

4b9b3361

Ответ 1

Нашел проблему!
Проблема заключалась в том, что проект запуска в моем решении был проектом моделирования. По какой-то причине при включении миграции в моем проекте модуль просматривает библиотеки, связанные с проектом запуска.

Изменен мой проект запуска как тестовый проект в решении, и все сработало.

UPDATE

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

Ответ 2

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

(Если вы используете First First Migrations в Visual Studio, это может произойти, если проект startUp для вашего решения не ссылается на проект, содержащий ваши миграции. Вы можете либо изменить проект startUp для своего решения, либо использовать параметр -StartUpProjectName.)

Ответ 3

Попробуйте указать имя типа контента:

Enable-Migrations -ContextTypeName Web.Infrastructure.ContextName

Если в решении есть несколько проектов, вы должны указать, какой из них применять. (выпадающее меню "DefaultProject" в верхней части консоли).

Ответ 4

У меня тоже была эта проблема, и я понял, что она не может подключиться, потому что startup web.config не содержит подробностей конфигурации EF. Проект, который содержал его (слой данных), имеет необходимую конфигурационную информацию, но эта конфигурация не используется. Просто переместите информацию конфигурации EF из файла конфигурации, где используется EF, и поместите его в конфигурацию вашего проекта запуска. Работал для меня.