数据注释,其中两个属性在mvc 3中是唯一的

时间:2012-08-08 05:29:16

标签: asp.net-mvc-3 entity-framework data-annotations

我有如下的Category表,我首先使用Entity框架模型:

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的组合形式使用dataannotation是唯一的,则验证输入。所以,我创建了类别的分部类:

 [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的组合始终是唯一的,如果用户输入重复数据则显示错误。

1 个答案:

答案 0 :(得分: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

}