1

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

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

If ModelState.IsValid Then
    db.SaveChanges()

SaveChanges抛出DbEntityValidationException以下消息:

一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。

我希望它再次返回带有适当验证消息的视图,但显然我遗漏了一些东西,因为我不知道为什么它应该这样工作!您可能希望 Google 提供帮助,但大多数示例似乎都是代码优先的。

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

奇怪的是,一些字段按预期工作,而另一些则没有。

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

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

4

0 回答 0