Apress Pro ASP.NET MVC3 の最終バージョンを使用して同じ問題に遭遇しました。Visual Studio デバッガーを使用して、context.SaveChanges()
(SportsStore.Domain.Concrete.EFProductRepostory) が実行されたときに、コンテキストが編集ビュー内で行った変更に変更されていないことに気付きました。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;
}
これは機能します。しかし、これは理想とはかけ離れており、最善の方法ではないと思います。
すべてのプロパティを 1 つずつ編集するのではなく、コンテキスト内の Product オブジェクト全体を編集/更新する方法でこれを行う方法はありますか?