gpt4 book ai didi

c# - ECONNRESET 在 CreatedAtAction 之后,使用 _context.AddRange() - EF 2.0

转载 作者:行者123 更新时间:2023-12-05 03:07:07 25 4
gpt4 key购买 nike

更改我的 Controller 以通过 _context.AddRange() 将数据插入数据库后,我在 Postman 的控制台上看到了这个错误“错误:读取 ECONNRESET”。以前,我通过 _context.Entity.Add() 添加数据,没问题。

我更改了插入方法,以便能够将 Lista(列表)实体添加到数据库,同时也将 n 个 Pessoa(人)实体和 n 个关系(列表 x 人)的列表插入到数据库。

插入都成功了,虽然Postman还是“Could not get any response”。

知道为什么会这样吗?

    public async Task<IActionResult> PostListas(ListaFileInput input)
{
...
Listas lista = new Listas
{
OwnerId = userId,
Lista = input.Lista
};
...
List<Pessoas> pessoas = csv.GetRecords<Pessoas>().ToList();
foreach (Pessoas pessoa in pessoas)
{
pessoa.OwnerId = userId;
_context.AddRange(new ListasXPessoas() { Lista = lista, Pessoa = pessoa });
}

await _context.SaveChangesAsync();

return CreatedAtAction("GetListas", new { id = lista.ListaId }, lista);

最佳答案

ECONNRESET 是一个很好的指标,表明在执行离开 Controller 后抛出了一些异常。检查输出窗口,我看到异常是:

Self referencing loop detected

然后我发现这是由于返回对象的序列化为JSON导致的。

最终通过添加如下代码忽略循环验证解决了:

services.AddMvc().AddJsonOptions(opt => 
opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);

关于c# - ECONNRESET 在 CreatedAtAction 之后,使用 _context.AddRange() - EF 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48409513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com