我在我的表中进行更新,但是当前表应保存在其他表中,在pessoaAntiga上保存Pessoa但在执行实体时返回错误。
public ActionResult Edit(PessoaViewModel pessoa)
{
var pessoaAntiga = _pessoaApp.GetById(pessoa.PessoaId);
_pessoaApp.Update(Mapper.Map<PessoaViewModel, Pessoa>(pessoa));
var lista = new List<HistoricoDeAlteraCliFor>();
附加“SistemaIndustrial.Domain.Entities.Pessoa”类型的实体失败,因为同一类型的另一个实体已具有相同的主键值。如果图中的任何实体具有冲突的键值,则在使用“附加”方法或将实体的状态设置为“未更改”或“已修改”时,可能会发生这种情况。这可能是因为某些实体是新的并且尚未收到数据库生成的键值。在这种情况下,使用“添加”方法或“已添加”实体状态来跟踪图表,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。
答案 0 :(得分:0)
EF只是告诉您他无法附加此实体,因为此实体已经有一个带有此主键的类型。
这是因为您没有更新正确的对象。
您需要将pessoa
更改映射到pessoaAntiga
。
查看此链接以了解有关EF更新的更多信息
http://www.entityframeworktutorial.net/update-entity-in-entity-framework.aspx