我目前正在使用Visual Studio 11 beta进行教程。当尝试在我的一个类中设置字段值的最大长度时:
[MaxLength(50)]
public string LastName { get; set; }
它出错了,不让我编译,因为MaxLength()
函数存在于两个地方:
错误4类型“系统.组件模型.数据注解.最大长度属性”同时存在于“c:\用户\我\文档\Visual Studio 11\ContosoUniversity\包\EntityFramework.4.1.10331.0\lib\net40\EntityFramework.dll”和“c:\程序文件(x86)\引用程序集\Microsoft\Framework.NETFramework\v4.5\系统.组件模型.数据注解. dll”中
我已经尝试删除这两个文件,但这只会导致更多的问题,因为我的项目中的其他代码依赖于它们。
有没有办法告诉它用一个还是另一个?
所有这些方法似乎都不适合我。请参考答案下面的评论。还有其他想法吗?
谢谢
7条答案
按热度按时间xqkwcwgp1#
在代码顶部使用using:
mspsb9vt2#
只需从包中卸载EntityFramework并重新安装它(EntityFramework)。它对我有效。只需按照下面提到的步骤:
1.右键单击参考2。单击管理nugetpackages。
3.单击卸载
1.进入在线部分并在搜索框中键入实体框架5。单击安装按钮
2cmtqfgy3#
使用所需的名称空间限定属性
41ik7eoe4#
如果您在最新的环境(VS 2017/.NET Framework 4.6.x)和实体框架(如6.1或6.2)中遇到相同的错误,这里是解决方案;
把你的实体框架降级到6.0。它会工作的。
xzabzqsa5#
MaxLength不是一个函数,它是一个属性。
可以在每个文件中使用using指令指定当前正确的上下文。
或者只输入完整的名称空间,例如
System.ComponentModel.DataAnnotations.MaxLength
9avjhtql6#
尝试使用外部别名http://msdn.microsoft.com/en-us/library/ms173212.aspx来区分这两个程序集
另外,查看页面底部附近的http://bartdesmet.net/blogs/bart/archive/2006/10/07/4502.aspx是一个示例
ebdffaop7#
这个问题现在是这个问题的首要答案,所以我想我会在这里大致回答它。
The type 'BLAH' exists in both
错误通常在以下情况下弹出:1. DUPLICATE FILES-(通常非常简单).dll文件就是这种情况。在大多数重复的情况下,删除其中一个重复文件是最简单和最好的解决方案
2. NON-DUPLICATE FILES-(更复杂,例如原始发布者的情况)不幸的是,您需要编辑并经常重新编译/查找文件的替代版本,这样就不会出现这样的冲突。幸运的是,通常情况下,使用相同的名称空间限定属性将修复这样的冲突。
MaxLength
的内容上发生冲突,则在必要的文件中对其进行限定,以明确您要使用的MaxLength,如下所示:System.ComponentModel.DataAnnotations.MaxLength
。这应该有助于澄清问题,因此在尝试运行代码时不会发生冲突 *