0

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ています。パワー ツールが Identity モデルのビューを生成しようとすると、この問題が発生するようです。

これは、ビューを生成しようとした場合にのみ発生します。ソリューション自体は、エラーなしでビルドおよび実行されます。

この問題を単純化して分離するために、vs 2013 で ID およびエンティティ フレームワーク 6.0 を使用して新しい Web サイト プロジェクトを作成しましたが、生成は正常に機能します。パッケージを 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>

System.ComponentModel.DataAnnotations.Schema.IndexAttributePower Toolsは、6.1 バージョンでしか導入されていないため、まだタイプを持たない 6.0 バージョンを使用することを主張しているようですが、一意の UserName を制限するために最新の ID モデルに追加されました。

何かご意見は?

4

1 に答える 1

0

Power ツールは、プロジェクトから参照されたものではなく、EntityFramework の Visual Studio IDE バージョンを使用していることが判明しました。私の場合は 6.0.2 でした。私のマシンにVisual Studio 2013 Update 5 (2013.5) RTMをインストールすると問題が解決し、最新の EntityFramework 6.1.3 が使用されるようになりました。

于 2016-01-19T06:46:48.757 に答える