EntityFrameworkController.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web.Mvc;
  4. using Benchmarks.AspNet.Models;
  5. namespace Benchmarks.AspNet.Controllers
  6. {
  7. public class EntityFrameworkController : Controller
  8. {
  9. Random random = new Random();
  10. public ActionResult Index(string providerName, int? queries)
  11. {
  12. List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
  13. using (EntityFramework db = new EntityFramework(providerName))
  14. {
  15. for (int i = 0; i < worlds.Capacity; i++)
  16. {
  17. int randomID = random.Next(0, 10000) + 1;
  18. worlds.Add(db.Worlds.Find(randomID));
  19. }
  20. }
  21. return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
  22. : Json(worlds[0], JsonRequestBehavior.AllowGet);
  23. }
  24. public ActionResult Fortunes(string providerName)
  25. {
  26. List<Fortune> fortunes = new List<Fortune>();
  27. using (EntityFramework db = new EntityFramework(providerName))
  28. {
  29. fortunes.AddRange(db.Fortunes);
  30. }
  31. fortunes.Add(new Fortune { ID = 0, Message = "Additional fortune added at request time." });
  32. fortunes.Sort();
  33. return View("Fortunes", fortunes);
  34. }
  35. public ActionResult Update(string providerName, int? queries)
  36. {
  37. List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
  38. using (EntityFramework db = new EntityFramework(providerName))
  39. {
  40. for (int i = 0; i < worlds.Capacity; i++)
  41. {
  42. int randomID = random.Next(0, 10000) + 1;
  43. int randomNumber = random.Next(0, 10000) + 1;
  44. World world = db.Worlds.Find(randomID);
  45. world.randomNumber = randomNumber;
  46. worlds.Add(world);
  47. }
  48. // batch update
  49. db.SaveChanges();
  50. }
  51. return Json(worlds, JsonRequestBehavior.AllowGet);
  52. }
  53. }
  54. }