对实体框架进行唯一验证

本文关键字:唯一 验证 实体 框架 | 更新日期: 2023-09-27 18:03:57

我有以下类

 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列是唯一的,但不是在整个表中唯一的,只是对于同一个实体。

这是可能的数据注释?还是应该在服务器端完成控制器操作?

对实体框架进行唯一验证

如果您使用的是最新版本的实体框架,您可以使用Index属性。您还需要在实体中添加一个属性,该属性指定用于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; }
}