0
如何检查从数据库中读取的对象的模型是否正确。实体框架4.1代码优先 - 验证控制器中的对象模型
var myModelObject = theDB.myDbContext.myModelObject.Find(1234);
现在我想根据模型中的规则/ attributy来控制它是否正确......但是如何?
如何检查从数据库中读取的对象的模型是否正确。实体框架4.1代码优先 - 验证控制器中的对象模型
var myModelObject = theDB.myDbContext.myModelObject.Find(1234);
现在我想根据模型中的规则/ attributy来控制它是否正确......但是如何?
根据验证规则,预计从数据库读取的数据是正确的,因为验证规则还定义了映射。在某些情况下,不一致可能导致对象实现异常。
如果要基于数据注解执行验证手动你可以使用:
using System.ComponentModel.DataAnnotations;
var results = new List<ValidationResult>();
var context = new ValidationContext(myModelObject, null, null);
bool isValid = Validator.TryValidateObject(myModelObject, context, results, true);
能否请您详细阐述更多的关于这个验证程序,以及它是如何工作的? 我已经测试了它,就像你上面的例子中,我似乎无法得到它的工作: 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
Ucenik类的属性上有IsRequired,所以当我将它添加到dbContext和GetValidationErrors比它工作正常,我得到3错误的每个属性丢失。 但Validator不会返回任何错误。它配置错了还是? 我的Ucenik类首先来自代码,但由于我使用的是现有的数据库,我在其公共类UcenikConfiguration:EntityTypeConfiguration *中添加了验证规则,而不是通过属性在类定义本身中。这有什么区别吗? –
Zaak
仅当您使用数据注释时,Validator类才有效。它不适用于流畅的映射。 –