entity-framework - 如何清除 Entity Framework 对象中的验证结果

标签 entity-framework unit-testing validation

是否可以清除与 Entity Framework 关联的 ObjectContext 中的验证结果?我想要的是这样的代码:

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

        var validationResults = dbContext.GetValidationErrors();

        validationResults.Clear();
}

我想实现此功能以在单元测试中使用以测试验证规则,而不必在数据库中保存更改。
谢谢。

最佳答案

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

关于entity-framework - 如何清除 Entity Framework 对象中的验证结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18783193/

相关文章:

c# - LINQ BeginTransaction 可以使用新的 Context 吗?

mysql - derby支持替换成mysql吗?

c# - 您如何在 WCF ServiceAuthorizationManager 中模拟 IContextChannel?

javascript - 检查用户输入是否有效

Excel 数据验证 - 填充下拉列表

java - 使用 java 扫描器类时如何验证用户文本输入?

asp.net-mvc - Entity Framework 4.1 Code First - 在存储库之间共享 dbContext 的正确方法?

sql-server - 使用 EF Core 2.1 和 SQL Server 进行正确的并发处理

c# - 首先忽略 EF 代码中所有继承对象中的属性

c++ - 对采用 "traits"模板参数的对象进行单元测试