2016-05-16 4 views
0

Web APIとAngularJSで作業していますが、Putメソッドで問題が発生しています。他の列を更新する場合は正常に動作しますが、主キー列(つまりemployeeID)を更新しようとすると失敗します。Web APIを実装する方法主キー列を更新するためのコントローラを置き換える(カスケード更新)

ただし、データベースでは、カスケード更新が可能です。更新するPut関数をemployeeIDで改善するにはどうすればよいですか?

// PUT: api/Employee/5 
public HttpResponseMessage Put(Employee emp) 
{ 
    if (ModelState.IsValid) 
    { 
     this.emp.Entry(emp).State = EntityState.Modified; 
     this.emp.SaveChanges(); 

     HttpResponseMessage res = Request.CreateResponse(HttpStatusCode.OK, emp); 
     return res; 
    } 
    else 
    { 
     return Request.CreateResponse(HttpStatusCode.BadRequest, emp); 
    } 
} 

ありがとう!!

+1

*どのように失敗しますか?エラーメッセージが表示されますか?もしそうなら:*何*エラーメッセージ?結局のところ、ここに投稿してください - 私たちはあなたの画面を見ることができないし、あなたの心を読むことができません... –

答えて

0

employeeIDが自動増分であることを確認します。それは、その特定のフィールドを挿入または更新することはできません。

+0

それは自動インクリメントではありません! –

+0

は、このエラー 型「System.Data.Entity.Infrastructure.DbUpdateConcurrencyException」の例外がEntityFramework.dllで発生しているが、ユーザーコードで 追加情報を扱っていなかった:店舗UPDATE、INSERT、またはステートメントを削除するには、影響を受けます予想外の行数(0)。エンティティはロードされた後に変更または削除された可能性があります。楽観的同時実行の例外の理解と処理については、http://go.microsoft.com/fwlink/?LinkId = 472540を参照してください。 –

+0

あなたのIDはまた通過していると確信していますか?このリンクが役立つかどうかを確認するhttp://stackoverflow.com/questions/26148793/how-to-solve-dbupdateconcurrencyexception-when-updating-a-row – Sl1ver

関連する問題