2011-12-21 6 views
0

MVC 3 Framework를 사용하여 웹 사이트를 구축하고 있습니다. Linq에서 SQL DataContext를 사용하여 데이터 액세스를 처리했습니다. 내가 배운 내용에 따라 게시 방법을 사용할 수 있습니다 사용자가 양식을 제출하고 MVC 프레임 워크가 데이터를 모델 오브젝트에 맵핑 할 수있는 양식 정보. 내가 잘못하고있는 중이 야 happens.WhatDataContext에 모델을 첨부하여 데이터베이스를 업데이트하는 방법

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(Entity model) 
    { 

     if(ModelState.IsValid) 
     { 
      _dataContext.Attach(model); 
      _dataContext.SubmitChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View("Edit", model); 
    } 

하지만 아무것도 : 이 같은 :

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(Entity model) 

하지만 여기에 데이터 컨텍스트 객체 모델 객체를 연결에 문제가 내가 무슨 일을하고 있어요?

답변

0

_dataContext은 엔티티가 변경되었음을 알지 못합니다. 그래서 당신은 참으로 수정 설정하는 overload를 사용하는 것 :

_dataContext.Attach(model, true); 
+0

나는이 방법을 시도하지만 실체는 버전 필드를 가져야한다고 말한다. – Beatles1692

+0

'Entity'에 [버전 키] (http://msdn.microsoft.com/en-us/library/bb386957.aspx)가 정의되어 있습니까? 또 다른 접근법은 컨텍스트에서 원래의 엔티티를 검색하고, 변경된 내용 ('model')과 그 다음에'SubmitChanges'로 변경하는 것입니다. –

+0

원래 접근 방식을 시도했습니다. 문제는 다음과 같습니다. 먼저 datacontext에 원본 버전을로드해야하고 두 번째 버전은 업데이트 된 버전을 첨부하려고하면 이미 동일한 키가있는 객체가 있음을 나타내는 오류가 발생합니다. 문맥 (원래 것) – Beatles1692

관련 문제