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 包添加)是安全的。但是,当我这样做时,我无法正确创建 DBContext,因为 DbModelBuilder 类位于 EntityFramework dll 中。此外,当我删除 EntityFramework 引用时,一些其他关键类丢失了,所以这是旧的和不相关的解决方案。
更新(消歧):两者System.ComponentModel.DataAnnotations.dll
和EntityFramework.dll
包括System.ComponentModel.DataAnnotations.MaxLengthAttribute
。问题是每个 dll 还包含对 EF 代码优先设计至关重要的其他类。例如:
EntityFramework.dll:
- System.Data.Entity.DbModelBuilder
System.ComponentModel.DataAnnotations.dll:
- System.ComponentModel.DataAnnotations.RegularExpressionAttribute