【问题标题】:Attaching an entity of type 'SistemaIndustrial.Domain.Entities.Pessoa'附加“SistemaIndustrial.Domain.Entities.Pessoa”类型的实体
【发布时间】:2017-03-31 14:45:14
【问题描述】:

我在我的表中进行更新,但当前表应该保存在其他表中,在 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”的实体失败,因为同一类型的另一个实体已经具有相同的主键值。如果图中的任何实体具有冲突的键值,则在使用“附加”方法或将实体的状态设置为“未更改”或“已修改”时,可能会发生这种情况。这可能是因为某些实体是新实体,尚未收到数据库生成的键值。在这种情况下,使用“添加”方法或“已添加”实体状态来跟踪图形,然后将非新实体的状态设置为“未更改”或“已修改”。

【问题讨论】:

  • 请澄清您的问题

标签: c# entity-framework


【解决方案1】:

EF 只是告诉你他不能附加这个实体,因为这个实体已经有一个带有这个主键的类型。

这是因为您没有更新正确的对象。

您需要将pessoachanges 映射到pessoaAntiga

查看此链接以了解有关 EF 更新的更多信息

http://www.entityframeworktutorial.net/update-entity-in-entity-framework.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多