在我的应用程序中,我有数据库模型和视图表单模型。当我在我的视图表单模型属性中有数据注释验证输入时,我是否需要在我的数据库模型属性中复制这些注释?我的意思是,当我在某些属性上指定类似[Range(5,10)]
的内容时,是否会对数据库进行任何更改?或者可能context.SaveChanges()
使用这些注释来验证最终模型,然后再将其保存到数据库中?
重申:当我在我的视图模型类中已有数据注释时,是否有必要将数据注释放在我的数据库模型类中?
答案 0 :(得分:2)
当您尝试将更改保存到数据库时,EF将使用DataAnnotations验证您的模型,因此它只是针对无效数据的另一层保护。如果输入了无效数据,Context将返回EntityValidationErrors。
一些要转换为SQL更新的DataAnnotations(必需和MaxLength会立即跳到脑海中),但其他人不会。