public ActionResult EFCodeFirst() { int count; // this would usually go in Global.asax.cs in Application_Start { var factory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0"); // for sql server you could do ... //var factory = new SqlConnectionFactory("Data Source=.;Initial Catalog=tempdb;Integrated Security=True"); var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory); Database.DefaultConnectionFactory = profiled; Database.SetInitializer<EFContext>(new DropCreateDatabaseIfModelChanges<EFContext>()); } // end EFContext context = null; using (MiniProfiler.Current.Step("EF Stuff")) { try { using (MiniProfiler.Current.Step("Create Context")) context = new EFContext(); using (MiniProfiler.Current.Step("First count")) count = context.People.Count(); using (MiniProfiler.Current.Step("Insertion")) { var p = new Person { Name = "sam" }; context.People.Add(p); context.SaveChanges(); } using (MiniProfiler.Current.Step("Second count")) count = context.People.Count(); } finally { if (context != null) { context.Dispose(); } } } return Json(count, JsonRequestBehavior.AllowGet); }
/// <summary> /// The EF code first. /// </summary> /// <returns>the entity framework code first view.</returns> public ActionResult EFCodeFirst() { int count; EFContext context = null; using (MiniProfiler.Current.Step("EF Stuff")) { try { using (MiniProfiler.Current.Step("Create Context")) context = new EFContext(); // this is not correct, as the count from this assignment is never actually used using (MiniProfiler.Current.Step("First count")) count = context.People.Count(); using (MiniProfiler.Current.Step("Insertion")) { var p = new Person { Name = "sam" }; context.People.Add(p); context.SaveChanges(); } // this count is actually used. using (MiniProfiler.Current.Step("Second count")) count = context.People.Count(); } finally { if (context != null) { context.Dispose(); } } } return Content("EF Code First complete - count: " + count); }
public ActionResult EFCodeFirst() { int count; EFContext context = null; using (MiniProfiler.Current.Step("EF Stuff")) { try { using (MiniProfiler.Current.Step("Create Context")) context = new EFContext(); using (MiniProfiler.Current.Step("First count")) count = context.People.Count(); using (MiniProfiler.Current.Step("Insertion")) { var p = new Person { Name = "sam" }; context.People.Add(p); context.SaveChanges(); } using (MiniProfiler.Current.Step("Second count")) count = context.People.Count(); } finally { if (context != null) { context.Dispose(); } } } return Content("EF Code First complete - count: " + count); }