Как обновить объект EF 4 в ASP.NET MVC 3?

У меня есть 2 проекта - библиотека классов, содержащая модель EDM Entity Framework и отдельный проект ASP.NET MVC.

У меня проблемы с тем, как вы предполагаете редактировать и сохранять изменения в сущности с помощью MVC. В моем контроллере у меня есть:

public class UserController : Controller
    {
        public ActionResult Edit(int id)
        {
            var rep = new UserRepository();

            var user = rep.GetById(id);

            return View(user);
        }

        [HttpPost]
        public ActionResult Edit(User user)
        {
            var rep = new UserRepository();

            rep.Update(user);

            return View(user);
        }
    }

Мой UserRepository имеет такой метод обновления:

public void Update(User user)
{
     using (var context = new PDS_FMPEntities())
     {
         context.Users.Attach(testUser);
         context.ObjectStateManager.ChangeObjectState(testUser, EntityState.Modified);
         context.SaveChanges();
     }
}

Теперь, когда я нажимаю «Сохранить» на странице редактирования пользователя, параметр user содержит только два заполненных значения: Id и FirstName. Полагаю, это связано с тем, что я показываю только эти два свойства в представлении.

Мой вопрос заключается в следующем: если я обновляю имя пользователя, а затем хочу его сохранить, что я предполагаю делать с другими свойствами пользователя , которые не отображались в представлении, поскольку теперь они содержат значения 0 или NULL в объекте user ?

Я много читал об использовании объектов-заглушек, но не могу быстро добиться успеха в этом ни в одном из примеров, которые я ' я видел, что действительно работает. т.е. я продолжаю получать исключения, связанные с EntityKey.

Может ли кто-нибудь указать мне на хороший учебник / пример того, как обновлять объекты EF 4 с помощью класса репозитория, вызываемого интерфейсом MVC?

7
задан Kara 23 January 2014 в 23:01
поделиться