Ошибка миграции EF: не удалось загрузить тип 'System.Data.Entity.Infrastructure.DbContextInfo' - PullRequest
3 голосов
/ 11 августа 2011

Я использую пример ContosoUniversity. Я только что использовал Nuget для загрузки и установки кода первой миграции. При выполнении команды update-database выдается ошибка. Можно ли что-то сделать, кроме установки пакета nuget?

Update-Database : Could not load type 'System.Data.Entity.Infrastructure.DbContextInfo' from assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
At line:1 char:16
+ update-database <<<< 
    + CategoryInfo          : NotSpecified: (:) [Update-Database], TypeLoadException
    + FullyQualifiedErrorId : System.TypeLoadException,System.Data.Entity.Migrations.Commands.MigrateCommand

Редактировать, Теперь я установил ADO.NET Entity Framework 4.1 - Update 1 и теперь выдает ошибку

Update-Database : The project 'ContosoUniversity' does not contain or reference any contexts.
At line:1 char:16
+ update-database <<<< 
    + CategoryInfo          : NotSpecified: (:) [Update-Database], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,System.Data.Entity.Migrations.Commands.MigrateCommand

Я пробовал сценарий в блоге Microsoft, но ничего не изменилось. (http://blogs.msdn.com/b/adonet/archive/2011/07/27/code-first-migrations-august-2011-ctp-released.aspx)

Ответы [ 2 ]

4 голосов
/ 11 августа 2011

Попробуйте установить msi.

http://www.microsoft.com/download/en/details.aspx?id=26825

Вторая ошибка, которую вы получаете, звучит так, как будто у вас проблемы с определением контекста в вашем проекте.Убедитесь, что у вас есть класс, унаследованный от DbContext.

Я также проверил бы, что ваш проект ссылается на правильную версию Entity Framework - 4.1 Обновление 1. В зависимости от типа проекта вы должнынайдите соответствующую ссылку в папке «Ссылки» в вашем проекте.Возможно, вам придется нажать кнопку «Показать все файлы» (вторая слева на панели инструментов в верхней части обозревателя решений).

После выбора ссылки вы увидите такую ​​информацию, какпуть к DLL и ее версия на панели свойств (F4, если она еще не видна).

Редактировать : в соответствии с JTew ниже, требуется перезапуск Visual Studio.

1 голос
/ 16 октября 2011

Произошла та же ошибка.

У меня было:

  • Установлен EF 4.1 (более старая версия) через .msi
  • Установлен более новая версия (EF4.1 Обновление 1 Миграции Alpha 3) через NuGet

Эта ошибка оказалась из-за жалобы платформы, поскольку она получала более старую версию 4.1.0.0 из GAC.

Удаление старой версии EF4.1 сделал свое дело.

...