MVC # Linq to SQL SubmitChanges не работает - PullRequest
2 голосов
/ 21 декабря 2011

У меня есть следующий код - truck_mng - это запись, которую в качестве данных мне нужно обновить:

    public ActionResult Edit(Truck_Mng truck_mng) 
    {       
      if (ModelState.IsValid)       
      { 
       DataContext.SubmitChanges();           
       return RedirectToAction("Index");       
      }  
      return RedirectToAction("index"); 

}

Запись не обновляется. Любая идея? Таблица имеет первичный ключ.

1 Ответ

2 голосов
/ 21 декабря 2011

Полагаю, Truck_Mng - это класс сущностей от вашего DataContext?

Вам необходимо сначала присоединить сущность к вашему DataContext, потому что связыватель моделей в инфраструктуре MVC просто создает новый экземпляр этого класса для передачи формыданные для вашего действия.

Установив для второго параметра значение true, вы сообщаете L2S, что сущность находится в измененном состоянии, но это работает только тогда, когда у вас есть отметка времени для проверки версии вашей сущности.

Самый простой подход - прикрепить как неизмененный, а затем вызвать Refresh.Таким образом, L2S проверяет наличие изменений, и вы можете сохранить ваши изменения:

DataContext.Truck_Mng.Attach(truck_mng);
DataContext.Refresh(RefreshMode.KeepCurrentValues, truck_mng);
DataContext.SubmitChanges(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...