2011-09-17 40 views

回答

2

根据验证规则,预计从数据库读取的数据是正确的,因为验证规则还定义了映射。在某些情况下,不一致可能导致对象实现异常。

如果要基于数据注解执行验证手动你可以使用:

using System.ComponentModel.DataAnnotations; 

var results = new List<ValidationResult>(); 
var context = new ValidationContext(myModelObject, null, null); 
bool isValid = Validator.TryValidateObject(myModelObject, context, results, true); 
+0

能否请您详细阐述更多的关于这个验证程序,以及它是如何工作的? 我已经测试了它,就像你上面的例子中,我似乎无法得到它的工作: var u = new Ucenik(); db.Ucenici.Add(u); var valrez = db.GetValidationErrors(); var results = new List (); var context = new ValidationContext(u,null,null); bool isValid = Validator.TryValidateObject(u,context,results,true); – Zaak

+0

Ucenik类的属性上有IsRequired,所以当我将它添加到dbContext和GetValidationErrors比它工作正常,我得到3错误的每个属性丢失。 但Validator不会返回任何错误。它配置错了还是? 我的Ucenik类首先来自代码,但由于我使用的是现有的数据库,我在其公共类UcenikConfiguration:EntityTypeConfiguration *中添加了验证规则,而不是通过属性在类定义本身中。这有什么区别吗? – Zaak

+0

仅当您使用数据注释时,Validator类才有效。它不适用于流畅的映射。 –

相关问题