У меня есть 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?