C# System.Data.Entity.Infrastructure.DbUpdateException问题

C# System.Data.Entity.Infrastructure.DbUpdateException问题,c#,.net,entity-framework,unit-testing,C#,.net,Entity Framework,Unit Testing,我有一个测试方法,它测试一个任务,假设该任务将获得一个任务定义(任务描述)以进行编辑: [TestMethod] public void GetTaskDefinitionsForEdit_HavingTaskDefinitions_ReturnsChecklistTaskDefinitions() { // this.CreateChecklistTaskDefinition(referenceKey: "Xxx123", description: "SomeDescription")

我有一个测试方法,它测试一个任务,假设该任务将获得一个任务定义(任务描述)以进行编辑:

[TestMethod]
public void GetTaskDefinitionsForEdit_HavingTaskDefinitions_ReturnsChecklistTaskDefinitions()
{
    // this.CreateChecklistTaskDefinition(referenceKey: "Xxx123", description: "SomeDescription");
    // this.checklistTaskTestHelper.CreateChecklistTaskDefinition(referenceKey: "Yyy234", description: "SomeOtherDescription");

    this.helper.CreateChecklistTaskDefinition(referenceKey: "Xxx123", description: "SomeDescription");
    this.helper.CreateChecklistTaskDefinition(referenceKey: "Yyy234", description: "SomeOtherDescription");

    this.CompanyDbContext.SaveChanges();

    //var result = this.checklistTaskTestHelper.checklistTaskDefinitionRepository.GetTaskDefinitionsForEdit(ChecklistReferenceType.ReconAccountGroup, "Xxx123");

    var result = this.checklistTaskDefinitionRepository.GetTaskDefinitionsForEdit(ChecklistReferenceType.ReconAccountGroup, "Xxx123");

    Assert.AreEqual(1, result.Count);
    //Assert.AreEqual("Xxx123", result[0].ReferenceKey);
    //Assert.AreEqual("SomeDescription", result[0].Description);
}
我还有一个initilize方法:

protected override void Initialize()
{
    this.company = this.CreateCompany("Test company");
    this.checklistTaskDefinitionRepository = this.CreateRepository<ChecklistTaskDefinitionRepository>(this.company);
    this.helper = new ChecklistTaskTestHelper(this.checklistTaskDefinitionRepository, this.checklistTaskStatusRepository);
}
一旦我运行测试方法,它就会打印出:

测试方法Core.Data.Test.Modules.checklist.checklistTaskDefinition RepositoryTest.GetTaskDefinitionsForEdit_HavingTaskDefinitions_returnsSchecklistTaskDefinitions引发异常: System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错


如果调试测试,可以检索内部异常,在本例中,该异常将为您提供错误原因(fk错误、重复的pk错误、列不存在、表不存在、数据库不存在)


要在visual studio中调试测试,请右键单击测试并单击调试。

环境DbContext变量非常容易出错。以前做了哪些更改,ChangeTracker中有哪些对象,这两个方法做了什么,内部异常是什么?这不是问题的答案,只是调试的建议。我相信这会是一个更好的评论
private Company company;
private ChecklistTaskDefinitionRepository checklistTaskDefinitionRepository;
private ChecklistTaskStatusRepository checklistTaskStatusRepository;
private ChecklistTaskTestHelper helper;