public IEnumerable <ViewProduct> GetProducts(string otherOptions) { using (var db = new MvvmSampleEntities()) { var results = from p in (from p in db.Products select p).ToList() select ViewProduct.FromProduct(p); return(results); } }
// GET: Products public ActionResult Index() { ViewBag.Title = "Products"; using (var db = new MvvmSampleEntities()) { 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 static async Task <IEnumerable <ViewProduct> > GetProductsAsync() { return(await Task.Run(() => { using (var db = new MvvmSampleEntities()) { var results = from p in (from p in db.Products select p).ToList() select Data.ViewModels.ViewProduct.FromProduct(p); return results.ToList(); } })); } // end function
public Models.SaveResult SaveProduct(ViewProduct product) { using (var db = new MvvmSampleEntities()) { var target = new Product(); db.Products.Add(target); target.SetProperties(product); db.SaveChanges(); } // end using(db) return(new Models.SaveResult { success = true }); } // end function
public ActionResult NewItem(ViewProduct product) { ViewBag.Title = "New Product Item"; using (var db = new MvvmSampleEntities()) { var target = new Product(); db.Products.Add(target); target.SetProperties(product); db.SaveChanges(); } // end using(db) // このサンプルでは、製品の登録が完了すると、Productsページにリダイレクトします。 //「登録しました」ページを表示する場合は、そのことを表示するビューの表示を用意してViewを返すように変更します。 return new RedirectResult("~/Products"); } // end function
} // end function public static async Task SaveProductAsync(ViewProduct product) { using (var db = new MvvmSampleEntities()) { 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.Products.Add(target); } // end if target.SetProperties(product); await db.SaveChangesAsync(); } // end using(db) } // end function
} // end function // GET: Item/10 public ActionResult Item(int id) { ViewBag.Title = "Product Item"; using (var db = new MvvmSampleEntities()) { 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