0

EF 4.1を使用しているリポジトリがありDbContext、オブジェクトを更新するとこのエラーが発生します

ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響しました。エンティティがロードされてから、エンティティが変更または削除された可能性があります。ObjectStateManagerエントリを更新します。

楽観的同時実行性の更新に関連していると思います。それを解決する方法はありますか?

  public void UpdateAddingCandidate(Event eventObj, int candidateId)
    {
        Candidate newCandidate = db.Candidates.AsNoTracking().FirstOrDefault(x => x.CandidateId == candidateId);
        eventObj.Candidate = newCandidate;
        eventObj.CandidateId = newCandidate.CandidateId;
        db.Entry(eventObj).State = EntityState.Modified;
    }
4

1 に答える 1

0

データベースからエンティティを更新できる ObjectContext.Refresh を調べます。RefreshMode を ClientWins または StoreWins に設定できます。

Try...Catch ロジックを使用し、キャッチ内の競合を処理して、ClientWins で変更を強制するか、変更されたデータをコンテキストにプルダウンして編集を再開します。ほとんどの場合、後者の方が適切なアプローチです。

于 2012-10-10T12:56:21.697 に答える