Не удалось загрузить систему типа".ComponentModel.DataAnnotations.Схема.IndexAttribute'
У меня эта ошибка.
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