我有以下课程
public class PestanasPorEntidad
{
[Key]
public int Id { get; set; }
public string Nombre { get; set; }
public int Orden { get; set; }
public string ClaseFontAwesome { get; set; }
public virtual Entidad Entidad { get; set; }
}
如您所见,此实体与Entidad有关。
我想要的是进行验证,以便Order列是唯一的,但在整个表中不是唯一的,只是针对同一个实体。
DataAnnotations可以实现吗?还是应该在控制器动作的服务器端完成?
答案 0 :(得分:2)
如果您使用的是最新版本的Entity Framework,则可以使用Index
attribtue。您还需要向实体添加一个属性,该属性指定用于Entitad
导航属性的列。
public class PestanasPorEntidad
{
[Key]
public int Id { get; set; }
public string Nombre { get; set; }
//Add this to specify a unique index for both Orden...
[Index("IX_OrdenAndEntitad", 1, IsUnique = true)]
public int Orden { get; set; }
public string ClaseFontAwesome { get; set; }
//...and also EntitadId
[Index("IX_OrdenAndEntitad", 2, IsUnique = true)]
public int EntitadId { get; set; }
public virtual Entidad Entidad { get; set; }
}