C# 未找到字段:';Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThroWareAdvalueExceptionMethod';

C# 未找到字段:';Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThroWareAdvalueExceptionMethod';,c#,unit-testing,asp.net-web-api,entity-framework-core,asp.net-core-webapi,C#,Unit Testing,Asp.net Web Api,Entity Framework Core,Asp.net Core Webapi,我正试图通过NUnit对我的WebApi控制器进行集成测试,但出现以下错误: 未找到字段:“Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThrorOveralueExceptionMethod” 当我从实体框架调用这一行时,错误正好发生: await base.SaveChangesAsync(true, cancellationToken); 有趣的是,当我直接(在localhost中)测试

我正试图通过NUnit对我的WebApi控制器进行集成测试,但出现以下错误:

未找到字段:“Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThrorOveralueExceptionMethod”

当我从实体框架调用这一行时,错误正好发生:

await base.SaveChangesAsync(true, cancellationToken);
有趣的是,当我直接(在localhost中)测试api时,我没有出现这个错误,只有当我从Nunit测试它时

这是我的测试类中的代码:

[Test]
public async Task PutAusschreibungen_WhenCalled_ReturnAddedAusschreibendeStellen()
{
   Guid id = Guid.NewGuid();
   AusschreibungDto ausschreibungDto = new AusschreibungDto
   {
      Id = id,
      Nr = 0,
      Status = "Test",
      Quelle = new QuelleDto
      {
          Id =  Guid.NewGuid(),
          Name = "QuelleTest",
          EingangTyp = EingangTyp.Email
      }
   };
   IActionResult result = await _ausschreibungenController.PostAusschreibung(It.IsAny<string>(), ausschreibungDto);
   Assert.That(result, Is.TypeOf<CreatedAtActionResult>());

}
[测试]
公共异步任务PutAusschreibungen_当调用时_ReturnAddedAusschreibendeStellen()
{
Guid id=Guid.NewGuid();
AusschreibungDto AusschreibungDto=新AusschreibungDto
{
Id=Id,
Nr=0,
Status=“Test”,
Quelle=新的QuelleDto
{
Id=Guid.NewGuid(),
Name=“QuelleTest”,
EingangTyp=EingangTyp.Email
}
};
IActionResult=await_ausschreibungenController.postauschreibung(It.IsAny(),ausschreibungDto);
Assert.That(result,Is.TypeOf());
}
这是我的控制器的代码:

        [HttpPost]
        public async Task<IActionResult> PostAusschreibung(string dbType, [FromBody] AusschreibungDto ausschreibungDto)
        {
            //if (!ModelState.IsValid)
            //{
            //    return new BadRequestObjectResult(ModelState);
            //}
            //Not neccesary because ControllerBase makes Validation automatically

            using (IUnitOfWork uow = _uowF(dbType))
            {
                Ausschreibung ausschreibung = _mapper.Map<AusschreibungDto, Ausschreibung>(ausschreibungDto);
                uow.Ausschreibungen.Add(ausschreibung);

                try
                {
                    await uow.CompleteAsync();
                }
                catch (DbUpdateException ex)
                {

                    return StatusCode(500, ex.ToString());
                }

                AusschreibungDto result = _mapper.Map<Ausschreibung, AusschreibungDto>(ausschreibung);
                return CreatedAtAction("GetAusschreibung", new {dbType, nr = result.Nr},
                    "Der Ausschreibung-Einträge wurde erfolgreich in die Datenbank aufgenommen.");
            }
        }
[HttpPost]
公共异步任务PostAusschreibung(字符串dbType,[FromBody]AusschreibungDto AusschreibungDto)
{
//如果(!ModelState.IsValid)
//{
//返回新的BadRequestObjectResult(ModelState);
//}
//不必要,因为ControllerBase会自动进行验证
使用(IUnitOfWork uow=\U uowF(dbType))
{
Ausschreibung Ausschreibung=\u mapper.Map(ausschreibungDto);
uow.Ausschreibungen.Add(ausschreibung);
尝试
{
等待uow.CompleteAsync();
}
捕获(DbUpdateException ex)
{
返回状态代码(500,例如ToString());
}
AusschreibungDto结果=_mapper.Map(ausschreibung);
返回CreateDataAction(“GetAusschreibung”,new{dbType,nr=result.nr},
“在Datenbank aufgenommen的一本书中,他写了一篇关于乌尔德·奥尔格里希的文章。”);
}
}
我使用的是AspNet核心2.1.0和实体框架核心2.1.1


任何帮助都将不胜感激

是否有任何演示来重现您的问题?是否有任何演示来重现您的问题?