实体框架电动工具在生成视图时出错



尝试使用EntityFramework Power Tools(0.9 beta)的Generate Views函数时,生成失败,我在"输出"窗口中收到以下错误:

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,当高级工具尝试为身份模型生成视图时,似乎会导致此问题。

这种情况只发生在试图生成视图的文。解决方案本身生成并运行,没有任何错误。

为了简化和隔离这个问题,我在 vs 2013 中使用标识和实体框架 6.0 创建了一个新的网站项目,并且生成工作正常。 将包更新到标识 2.2.1 和实体框架 6.1.3 会导致错误,并且生成失败。

我已经检查了项目引用,看起来引用了正确的实体框架版本。

我的 .csproj 参考:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..packagesEntityFramework.6.1.3libnet45EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer">
  <HintPath>..packagesEntityFramework.6.1.3libnet45EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core">
  <HintPath>..packagesMicrosoft.AspNet.Identity.Core.2.2.1libnet45Microsoft.AspNet.Identity.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.EntityFramework">
  <HintPath>..packagesMicrosoft.AspNet.Identity.EntityFramework.2.2.1libnet45Microsoft.AspNet.Identity.EntityFramework.dll</HintPath>
</Reference>

似乎 Power 工具坚持使用尚未具有System.ComponentModel.DataAnnotations.Schema.IndexAttribute类型的 6.0 版本,因为它仅在 6.1 版本中引入,但它已添加到最新的标识模型中以限制唯一的用户名。

有什么想法吗?

事实证明,Power工具使用的是EntityFramework的Visual Studio IDE版本,而不是项目中引用的工具。就我而言,它是 6.0.2。在我的机器上安装 Visual Studio 2013 Update 5 (2013.5) RTM 解决了这个问题,现在使用的是最新的 EntityFramework 6.1.3。

相关内容

  • 没有找到相关文章