public static IEnumerable <ViewProduct> GetProducts() { using (var db = new MvvmSampleModelContainer()) { var results = from p in (from p in db.Products select p).ToList() select Data.ViewModels.ViewProduct.FromProduct(p); return(results.ToList()); } } // end function
// GET: Products public ActionResult Index() { ViewBag.Title = "Products"; using (var db = new MvvmSampleModelContainer()) { var results = from p in (from p in db.Products select p).ToList() select Data.ViewModels.ViewProduct.FromProduct(p); return(View(results)); } } // end function
public ActionResult NewItem(ViewProduct product) { ViewBag.Title = "New Product Item"; using (var db = new MvvmSampleModelContainer()) { var target = new Product(); db.AddToProducts(target); target.SetProperties(product); db.SaveChanges(); } // end using(db) // このサンプルでは、製品の登録が完了すると、Productsページにリダイレクトします。 //「登録しました」ページを表示する場合は、そのことを表示するビューの表示を用意してViewを返すように変更します。 return new RedirectResult("~/Products"); } // end function
} // end function public static void SaveProduct(ViewProduct product) { using (var db = new MvvmSampleModelContainer()) { Product target = null; if (product.Id > 0) { target = (from p in db.Products where p.Id == product.Id select p).FirstOrDefault(); }// end if if (target == null) { target = new Product(); db.AddToProducts(target); } // end if target.SetProperties(product); db.SaveChanges(); } // end using(db) } // end function
} // end function // GET: Item/10 public ActionResult Item(int id) { ViewBag.Title = "Product Item"; using (var db = new MvvmSampleModelContainer()) { var results = from p in (from p in db.Products where p.Id == id select p).ToList() select Data.ViewModels.ViewProduct.FromProduct(p); var item = results.FirstOrDefault(); if (item == null) { // このサンプルでは、指定された Id の Product が見つからないときに、Productsページにリダイレクトします。 //「見つかりません」ページを表示する場合は、専用のページにリダイレクトするように変更します。 return(new RedirectResult("~/Products")); } // end if return(View(item)); } } // end function