Ошибка миграции EF: не удалось загрузить тип «System.Data.Entity.Infrastructure.DbContextInfo»

Я использую пример 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 )


person Jayantha Lal Sirisena    schedule 11.08.2011    source источник


Ответы (2)


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

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

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

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

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

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

person Scott Munro    schedule 11.08.2011
comment
теперь я установил его и выдает новую ошибку. Пожалуйста, помогите мне. - person Jayantha Lal Sirisena; 11.08.2011
comment
как я могу проверить ссылочную версию? - person Jayantha Lal Sirisena; 11.08.2011
comment
Сработало для меня, пришлось перезапустить визуальную студию, ты - person JTew; 29.08.2011

Была такая же ошибка.

Я имел:

  • Установлен EF 4.1 (более старая версия) через .msi
  • Установил более новую версию (EF 4.1 Update 1 Migrations Alpha 3) через NuGet

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

Удаление старой версии EF 4.1 помогло.

person Chris Moschini    schedule 15.10.2011