The type 'System.ComponentModel.DataAnnotations.MaxLengthAttribute'
exists in both
[path...]\packages\EntityFramework.4.3.1\lib\net40\EntityFramework.dll
and
'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'
今、msdnで、EntityFramework 参照 (nuget パッケージによって追加された) を除外しても安全であることを読みました。ただし、これを行うと、DbModelBuilder クラスが EntityFramework dll に存在するため、DBContext を適切に作成できません。また、EntityFramework 参照を削除すると、他のいくつかの重要なクラスが欠落しているため、これは古くて無関係なソリューションになりました。
更新 (曖昧さ回避) :System.ComponentModel.DataAnnotations.dll
とEntityFramework.dll
includeの両方System.ComponentModel.DataAnnotations.MaxLengthAttribute
。問題は、各 dll に、EF コード ファーストの設計に不可欠な他のクラスも含まれていることです。例えば:
EntityFramework.dll:
- System.Data.Entity.DbModelBuilder
System.ComponentModel.DataAnnotations.dll:
- System.ComponentModel.DataAnnotations.RegularExpressionAttribute