我正在使用EF 6+版本来创建Code First数据库。然而,在单元测试期间,我偶然发现了有趣的事实。属性Index(IsUnique = true)
并不真正希望与Display
属性结合在一起。
[Column(TypeName = "VARCHAR")]
[StringLength(150)]
[Required]
[Index(IsUnique = true)]
[Display(ResourceType = typeof(Resources.Resources), Name = "Program")]
public String Name { get; set; }
我的Entity中有这样的属性,包含所有Data Annotations和Display属性。当我尝试向db添加具有相同名称的第二个实体时,它会通过而不会抛出任何异常。但是当我注释掉Display属性时,我有异常DbUpdateException
。
Display
是否以某种方式覆盖Index Unique
,或者是否导致验证不检查唯一索引?或者也许来自资源字符串的值会以某种方式导致验证无法处理的歧义?