Я столкнулся с той же проблемой, используя финальную версию Apress Pro ASP.NET MVC3.Используя отладчик Visual Studio, я заметил, что при выполнении context.SaveChanges()
(SportsStore.Domain.Concrete.EFProductRepoistory) контекст не изменялся на изменения, которые мы внесли в представление Edit.Хотя продукт, определенный в конструкторе SaveProduct ()
Так что я догадался, что все, что нам нужно было сделать, это изменить Context.Products.Product на продукт внутри конструктора следующим образом:
else
{
context.Products.Find(product.ProductId) = product;
}
к сожалению, Visual Studio выдала мне эту ошибку:
Ошибка 1 Левая часть назначения должна быть переменной, свойством или индексатором
Таким образом, чтобы это работалоЯ должен был сделать это:
else
{
context.Products.Find(product.ProductID).Name = product.Name;
context.Products.Find(product.ProductID).Description = product.Description;
context.Products.Find(product.ProductID).Category = product.Category;
context.Products.Find(product.ProductID).Price = product.Price;
}
Это работает. Однако я думаю, что это далеко от идеала и не лучший способ сделать это.
Есть лиспособ сделать это так, чтобы я просто редактировал / обновлял весь объект Product внутри контекста, а не редактировал каждое свойство одно за другим?