2017-03-31 9 views
0

私は自分のテーブルで更新を行いますが、現在のテーブルはpessoaAntigaの他のテーブルに保存する必要があります。エンティティがエラーを返します。同じタイプの別のエンティティがすでに同じ主キー値を有するので'SistemaIndustrial.Domain.Entities.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」に失敗しました。これは、「Attach」メソッドを使用するか、またはグラフ内のエンティティのいずれかが競合するキー値を持つ場合、エンティティの状態を「Unchanged」または「Modified」に設定すると発生します。これは、一部のエンティティが新しく、データベース生成キー値をまだ受け取っていないことが原因です。この場合、 'Add'メソッドまたは 'Added'エンティティ状態を使用してグラフを追跡し、非新規エンティティの状態を 'Unchanged'または 'Modified'に適切に設定します。

+0

についての詳細を知るには、このリンクを見てくださいあなたの質問を明確にしてください – dmorrow

答えて

0

EFは、このエンティティにこのプライマリキーを持つ型が既に存在するため、このエンティティを接続できないことを伝えるだけです。

これは、正しいオブジェクトを更新していないためです。

pessoaの変更をpessoaAntigaに割り当てる必要があります。

はEF更新

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

関連する問題