0

我有以下类别表,我首先使用实体​​框架模型:

ID => int , primary key , unique
CategoryName => varchar(50)
ParentCategoryID => int

我通过执行以下查询为两列 categoryName 和 ParentCategoryID 应用了唯一约束:

ALTER TABLE Category
ADD CONSTRAINT UQ_YourTable_ConstraintName UNIQUE(CategoryName, ParentCategoryID)

在这里,我想要的是,如果 categoryName 和 ParentCategoryID 的组合形式使用数据注释是唯一的,则验证输入。因此,我为类别创建了部分类:

 [MetadataType(typeof(TestEntityValidation))]
    public partial class Category{
    }

    public class TestEntityValidation{
       //............ data annotation
        public string CategoryName{ get; set; }

       //............ data annotation
        public string ParentCategoryID { get; set; }
    }

什么可以是数据注释的代码,以便 CategoryName 和 ParentCategoryID 的组合始终是唯一的,并且如果用户输入重复数据则显示错误。

4

1 回答 1

0

我不认为你可以使用数据注释来做到这一点,但这是你可以做的

public ActionResult Validate(SomeModel model)
{
 // check for this condition with db using the 'model'

 if(combination_is_NOT_unique)
 {
  ViewBag.Message = "Not Unique";
  return View("NameOfTheView");
 }

 // else
 do the normal stuff

}
于 2012-08-08T05:35:58.893 回答