Mat*_*rda 4 c# asp.net-mvc entity-framework-core asp.net-core-2.0
在更改我的控制器以通过_context.AddRange(). 之前我是通过添加数据的_context.Entity.Add(),没问题。
我更改了插入方法,以便能够将 Lista(列表)实体添加到数据库,同时还将 n 个 Pessoa(人)实体和 n 个关系(列表 x 人)的列表插入到数据库。
尽管邮递员仍然“无法得到任何回复”,但插入全部成功。
知道为什么会发生这种情况吗?
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);
Run Code Online (Sandbox Code Playgroud)
ECONNRESET 是一个很好的指示器,表明在执行离开控制器后抛出了一些异常。检查输出窗口,我发现异常是:
检测到自引用循环
后来我发现这是由于返回对象序列化为JSON造成的。
最终通过添加以下代码忽略循环验证解决:
services.AddMvc().AddJsonOptions(opt =>
opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6476 次 |
| 最近记录: |