我应该将实体框架的SaveChanges()方法放在单独的方法中还是与其他方法一起使用?
c#
我有一个带有 .NET 5 的 ASP.Net Core Web API,我想使用一个实体框架 dbset。为了向 dbset 添加记录,我使用以下代码:
[HttpPost]
public IActionResult Add(TblPerson person)
{
try
{
_context.TblPeople.Add(person);
_context.SaveChanges();
return Ok(true);
}
catch
{
return BadRequest();
}
}
注意有一个_context.SaveChanges();. 如果我想将该行从方法中取出并将其分开,它将是这样的:
[HttpPost]
public IActionResult Add(TblPerson person)
{
try
{
_context.TblPeople.Add(person);
return Ok(true);
}
catch
{
return BadRequest();
}
}
[HttpGet]
[Route("Save")]
public IActionResult Save()
{
return Ok(_context.SaveChanges());
}
现在我想看看如果从客户端背对背调用 10 次,从客户端的角度来看哪种方式会更快。
回答
你试过吗?第二种方法不会保存您的实体,因为您的 DbContext 是根据请求实例化的,或者至少应该如此,因此当您的客户端调用 Save() 时,之前添加的实体将消失。
如果出于性能考虑需要批量插入,请提供一种接受数组的方法。
THE END
二维码