验证如何在数据库优先DbContext
(EF4.3.1 和 MVC3)中工作?
我正在这样做(是的,它是 VB):
If ModelState.IsValid Then
db.SaveChanges()
但SaveChanges
抛出DbEntityValidationException
以下消息:
一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。
我希望它再次返回带有适当验证消息的视图,但显然我遗漏了一些东西,因为我不知道为什么它应该这样工作!您可能希望 Google 提供帮助,但大多数示例似乎都是代码优先的。
这是数据库优先,所以模型已经生成。我希望也会生成验证约束(至少像 SQL Server 中的 NOT NULL 这样简单的约束),但这似乎不起作用。
奇怪的是,一些字段按预期工作,而另一些则没有。
例如,我在数据库中有一个不可为空的文本字段。它在 EF 设计器和生成的代码中显示为不可为空。但是当我提交它时,我得到了异常,而不是返回突出显示该字段的表单。
另一方面,我有一个不可为空的日期字段。在尝试更新数据库之前对其进行检查,并再次显示表单,并突出显示字段以进行更正。