EntityFramwork Power Tools ошибка при создании представлений

При попытке использовать Generate Views функция EntityFramework Power Tools (0.9 бета), генерация не удается, и я получаю следующую ошибку в окне вывода:

System.Reflection.TargetInvocationException: 
Exception has been thrown by    the target of an invocation. --->
System.TypeLoadException: Could not load type 
'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' from assembly 
'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
at MyProject.Entities.Models.MyDbContext.OnModelCreating(DbModelBuilder modelBuilder)

Мой контекст наследуется от IdentityDbContextчто, кажется, вызывает эту проблему, когда электроинструменты пытаются генерировать представления для моделей Identity.

Это происходит только тогда, когда мы пытаемся генерировать представления. Само решение строится и работает без ошибок.

Чтобы упростить и изолировать эту проблему, я создал новый проект веб-сайта в vs 2013 с удостоверением и структурой сущностей 6.0, и генерация работает отлично. Обновление пакетов до Identity 2.2.1 и EntityFramework 6.1.3 вызывает ошибку, и генерация завершается неудачно.

Я проверил ссылки на проект, и похоже, что ссылка на правильную версию Entityframework.

Мои ссылки.csproj:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer">
  <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core">
  <HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.EntityFramework">
  <HintPath>..\packages\Microsoft.AspNet.Identity.EntityFramework.2.2.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll</HintPath>
</Reference>

Похоже, что инструменты Power настаивают на использовании версии 6.0, которая не имеет System.ComponentModel.DataAnnotations.Schema.IndexAttribute введите еще, поскольку он появился только в версии 6.1, но был добавлен в последние модели Identity для ограничения уникального имени пользователя.

Какие-нибудь мысли?

1 ответ

Решение

Оказывается, что инструменты Power используют версию EntityFramework Visual Studio IDE, а не ссылочную версию из проекта. В моем случае это было 6.0.2. Установка Visual Studio 2013 Update 5 (2013.5) RTM на моем компьютере решила проблему, и теперь используется последняя версия EntityFramework 6.1.3.

Другие вопросы по тегам