http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc- применение
я есть 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. Я так понимаю, это связано с тем, что я отображаю только эти два свойства в представлении.
Мой вопрос заключается в следующем: если я обновляю имя пользователя, а затем хочу сохранить его, что я должен делать с другимUser
свойства, которые не были показаны в представлении, поскольку теперь они содержат 0 или значения NULL вuser
объект?
Я много читал об использовании объектов-заглушек, но быстро никуда не делся, поскольку ни один из примеров, которые я видел, на самом деле не работает. то есть я продолжаю получать исключения, связанные с EntityKey.
Может кто-нибудь указать мне хороший учебник / пример того, как обновить сущности EF 4, используя класс репозитория, вызываемый внешним интерфейсом MVC?