public ActionResult Destroy(IEnumerable<ProductViewModel> products) { using (var northwind = new Northwind()) { //Iterate all destroyed products which are posted by the Kendo Grid foreach (var productViewModel in products) { // Create a new Product entity and set its properties from productViewModel var product = new Product { ProductID = (int)productViewModel.ProductID, }; // Attach the entity northwind.Products.Attach(product); // Delete the entity northwind.Products.DeleteObject(product); } // Delete the products from the database northwind.SaveChanges(); //Return emtpy result return Json(null); } }
public ActionResult Read(int take, int skip, IEnumerable<Sort> sort, Kendo.DynamicLinq.Filter filter) { using (var northwind = new Northwind()) { var result = northwind.Products .OrderBy(p => p.ProductID) // EF requires ordered IQueryable in order to do paging // Use a view model to avoid serializing internal Entity Framework properties as JSON .Select(p => new ProductViewModel { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Discontinued = p.Discontinued }) .ToDataSourceResult(take, skip, sort, filter); return Json(result); } }
public ActionResult Create(IEnumerable<ProductViewModel> products) { var result = new List<Product>(); using (var northwind = new Northwind()) { //Iterate all created products which are posted by the Kendo Grid foreach (var productViewModel in products) { // Create a new Product entity and set its properties from productViewModel var product = new Product { ProductName = productViewModel.ProductName, UnitPrice = productViewModel.UnitPrice, UnitsInStock = productViewModel.UnitsInStock, Discontinued = productViewModel.Discontinued }; // store the product in the result result.Add(product); // Add the entity northwind.Products.AddObject(product); } // Insert all created products to the database northwind.SaveChanges(); // Return the inserted products - the Kendo Grid needs their ProductID which is generated by SQL server during insertion return Json(result.Select(p => new ProductViewModel { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Discontinued = p.Discontinued }) .ToList()); } }
public ActionResult Update(IEnumerable<ProductViewModel> products) { using (var northwind = new Northwind()) { //Iterate all updated products which are posted by the Kendo Grid foreach (var productViewModel in products) { // Create a new Product entity and set its properties from productViewModel var product = new Product { ProductID = (int)productViewModel.ProductID, ProductName = productViewModel.ProductName, UnitPrice = productViewModel.UnitPrice, UnitsInStock = productViewModel.UnitsInStock, Discontinued = productViewModel.Discontinued }; // Attach the entity northwind.Products.Attach(product); // Change its state to Modified so Entity Framework can update the existing product instead of creating a new one northwind.ObjectStateManager.ChangeObjectState(product, EntityState.Modified); } // Save all updated products to the database northwind.SaveChanges(); //Return emtpy result return Json(null); } }
public ActionResult Read() { using (var northwind = new Northwind()) { var products = northwind.Products // Use a view model to avoid serializing internal Entity Framework properties as JSON .Select(p => new ProductViewModel { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Discontinued = p.Discontinued }) .ToList(); return Json(products); } }