验证如何在数据库优先的dbContext(EF4.3.1& MVC3)中工作?

时间:2012-11-01 19:19:24

标签: asp.net-mvc-3 entity-framework validation dbcontext

如何在数据库优先DbContext(EF4.3.1& MVC3)中进行验证?

我这样做(是的,它是VB):

If ModelState.IsValid Then
    db.SaveChanges()

但是SaveChanges会抛出DbEntityValidationException并显示以下消息:

  

一个或多个实体的验证失败。看到   'EntityValidationErrors'属性以获取更多详细信息。

我希望它能够使用适当的验证消息再次返回视图,但很明显我错过了一些东西,因为我不知道为什么它应该以这种方式工作!您可以期待Google提供帮助,但大多数示例似乎都是代码优先的。

这是数据库优先,因此已生成模型。我希望也会生成验证约束(至少是SQL Server中的NOT NULL之类的简单约束),但这似乎不起作用。

奇怪的是,有些领域正在按预期运作,而其他领域则没有。

例如,我在数据库中有一个不可为空的文本字段。它在EF设计器和生成的代码中看起来是不可为空的。但是当我提交它时,我得到异常,而不是返回突出显示字段的表单。

另一方面,我有一个不可为空的日期字段。在尝试更新数据库之前进行检查,然后再次显示该表单,并突出显示该字段以进行更正。

0 个答案:

没有答案