Не удалось загрузить систему типа".ComponentModel.DataAnnotations.Схема.IndexAttribute'

У меня эта ошибка. Could not load type 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' ERROR

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

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

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

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

обновление Я использовал некоторые обновлены ссылки на сеть САШ.Тождественность. это вызывает проблему?

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

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

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">

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


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

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