1

升级到 EF 5 后,我不断进入Validation failed for one or more entities. See 'EntityValidationErrors' property for more details'我的代码的特定实例。

事实证明,我在数据库中有一个可以为 NVARCHAR 为空的字段,并且它在部分类中标记为具有 [Required] 和 Data 注释。有问题的字段以编程方式设置为 null。这在 EF4 中运行良好,因为它已针对数据库模型(NVARCHAR 可为空)进行了验证。

我需要将该字段标记为 [Required],因为它在其他情况下也需要用户输入。

我有哪些选择?我可以在之前忽略该属性/验证错误SaveChanges()吗?

4

1 回答 1

4

这就是为什么强烈建议您使用视图模型,而不是将实体直接传递给视图的原因。您的视图和数据模型有不同的要求,尝试使用相同的模型进行验证会导致问题。

相反,从您的数据模型中删除所需的属性并创建一个具有所需属性的视图模型,然后使用 AutoMapper 之类的东西在它们之间进行映射。

于 2012-09-09T19:14:59.547 回答