错误是
无法跟踪实体类型“Person”的实例,因为已跟踪具有相同键值 {'Id'} 的另一个实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用
这是我的代码:
public async Task<Person> GetPersonById(Guid Id)
{
return await _context.Person.AsNoTracking()
.Where(t => t.Id == Id).FirstOrDefaultAsync();
}
public async Task<Guid> EditPerson(Person Updateperson)
{
if (Updateperson.Id != null)
{
Updateperson.ModifiedOn = DateTime.Now;
Updateperson.ModifiedBy = Updateperson.CreatedBy;
_context.Update(Updateperson);
await _context.SaveChangesAsync();
return Updateperson.Id;
}
else
{
return Guid.Empty;
}
}
在 Blazor 单页应用程序中,当我两次编辑同一条记录而不进行硬刷新时,第二次不会更新该记录。
谁能提供解决方案吗?
我也有同样的问题。我不是专家,但这对我有帮助:使用“FindAsync”代替“AsNoTracking”。试试这个:
public async Task<Person> GetPersonById(Guid Id)
{
return await _context.Person.FindAsync(Id);
}