实体框架的唯一验证

时间:2015-07-22 14:57:20

标签: c# asp.net-mvc entity-framework

我有以下课程

 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可以实现吗?还是应该在控制器动作的服务器端完成?

1 个答案:

答案 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; }

}