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.