Не удалось загрузить тип «System.ComponentModel.DataAnnotations.Schema.IndexAttribute».

У меня есть эта ошибка. Не удалось загрузить тип

ApplicationDbContext — это автоматически сгенерированный DbContext, используемый в разделе учетной записи. Всякий раз, когда я пытаюсь использовать какие-либо действия контроллера учетных записей, возникает эта ошибка. Ошибка возникает из

  public AccountController()
            : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
        {
        }

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

Ссылки в порядке. Как мне решить эту проблему.

Обновление Я использовал несколько обновленных ссылок для AspNet.Identity. это вызывает проблему?

Обновление 2 Эта ошибка возникла, когда я смешивал две версии поставщика членства. Сначала я использовал значение по умолчанию, предоставленное MVC 5, затем попытался использовать членство в MVC 3, а затем снова вернулся к MVC 5. Затем начала появляться эта ошибка.

Я до сих пор не нашел решения этой проблемы. Но в качестве обходного пути я воссоздал проект со всеми моими предыдущими файлами, и это сработало.


person Ruchan    schedule 12.05.2014    source источник
comment
здравствуйте, подскажите как решить вышеописанное, у меня такая же проблема   -  person Eldho    schedule 04.07.2014
comment
Любое разрешение? У меня такая же проблема.   -  person spadelives    schedule 04.10.2014
comment
Я фактически воссоздал проект с теми же файлами (модели, контроллеры, представления), и это сработало. Не удалось найти реальное решение :/   -  person Ruchan    schedule 06.10.2014
comment
Погуглил и нашел вот это: IndexAttribute is one of the new things included in EF 6.1. So the problem is that you are referring to the wrong version of the EF (6.0).   -  person Ruchan    schedule 07.10.2014
comment
тоже была эта проблема. Я воссоздал проект, и он работает. Немного миссии, которую нужно выполнить, но .. я думаю, не следует слишком много играть с идентичностью.   -  person    schedule 13.11.2014


Ответы (3)


Отредактируйте файл .csproj и замените значения <HintPath> правильными путями версий Entity Framework (в настоящее время последней стабильной версией является 6.1.2):

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>

Убедитесь, что пути существуют; если нет, установите пакет Nuget для нужной версии.

Чтобы было ясно, это элементы <HintPath>, которые вы хотите отредактировать, чтобы обеспечить текущую версию:

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath>

а также

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath>

Оставьте эти настройки основной версии 6.0.0.0:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">

А также

<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
person Chris Schiffhauer    schedule 26.01.2015
comment
На самом деле это 6.1.3, если вы используете самую последнюю версию EF 6. - person Edgar Froes; 25.04.2017
comment
В меню Visual Studio (2015): Инструменты->Диспетчер пакетов Nuget->Управление пакетами nuget для решения... у вас есть обзор. В моем случае я выбрал Entity framework на левой панели и сразу увидел, что в одном проекте используется старая версия EF. Который также был виновником. - person LosManos; 20.06.2017

У меня возникла та же проблема, и я попытался изменить свой файл .csproj и заменить файл <HintPath>, как это показал выше Крис Шиффхауэр, но проблема не была решена. Наконец, я узнал, что DLL-библиотека Entity Framework в моем GAC была старой версии (6.0.0.0), после ее удаления проблем больше не было.

Вы можете легко найти его здесь C:\Windows\Microsoft.NET\assembly\GAC_MSIL

person tuan nguyen    schedule 05.07.2018

У меня была аналогичная ошибка с тестовым проектом, в обоих проектах была ссылка на Entity Framework 6.0.0.0. Я смог решить эту проблему, удалив и снова добавив ссылку на структуру сущностей в тестовом проекте.

person Christian S    schedule 21.03.2017