如何清除实体框架对象中的验证结果

mig*_*eia 4 validation unit-testing entity-framework

可以在与实体框架关联的ObjectContext中清除验证结果吗?我想要的是这样的代码:

public void ClearValidationResults (ObjectContext db)
{
        var dbContext = new DbContext(db, true);

        var validationResults = dbContext.GetValidationErrors();

        validationResults.Clear();
}
Run Code Online (Sandbox Code Playgroud)

我想实现此功能,以便在单元测试中用于测试验证规则,而无需在DataBase中保存更改.谢谢.

Paw*_*wel 5

DbContext不存储验证错误,它会在您每次调用时验证实体DbContext.GetValidationErrors()DbContext.SaveChanges().因此,如果您的上下文正在跟踪的无效实体DbContext.GetValidationErrors()将始终返回错误.您需要分离或修复无效的实体/实体,并且错误将消失,因为您的上下文不会跟踪无效实体.