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