static void RunExample() { using (var context = new EFRecipesEntities()) { var donation = context.Donations.Create(); donation.Amount = 5000M; var donor1 = context.Donors.Create(); donor1.Name = "Jill Rosenberg"; var donor2 = context.Donors.Create(); donor2.Name = "Robert Hewitt"; // give Jill the credit for the donation and save donor1.Donations.Add(donation); context.Donors.Add(donor1); context.Donors.Add(donor2); context.SaveChanges(); // now give Robert the credit donation.Donor = donor2; // report foreach (var donor in context.Donors) { Console.WriteLine("{0} has given {1} donation(s)", donor.Name, donor.Donations.Count().ToString()); } Console.WriteLine("Original Donor Id: {0}", context.Entry(donation).OriginalValues["DonorId"]); Console.WriteLine("Current Donor Id: {0}", context.Entry(donation).CurrentValues["DonorId"]); } }
public Medium GetMediaByTitle(string title) { using (var context = new EFRecipesEntities()) { return(context.Media.Include("MediaType").First(m => m.Title == title)); } }
public void InsertTestRecord() { using (var context = new EFRecipesEntities()) { // remove previous test data context.ExecuteStoreCommand("delete from chapter9.enrollment"); context.ExecuteStoreCommand("delete from chapter9.course"); context.ExecuteStoreCommand("delete from chapter9.student"); // insert new test data var student = new Student { Name = "Robin Rosen", StudentId = 1 }; var course1 = new Course { Title = "Mathematical Logic 101", CourseId = 1 }; var course2 = new Course { Title = "Organic Chemistry 211", CourseId = 2 }; context.Students.AddObject(student); context.Courses.AddObject(course1); context.Courses.AddObject(course2); context.SaveChanges(); } }
public List <Course> GetCourseDetail() { using (var context = new EFRecipesEntities()) { return(context.Courses.Include("Enrollments.Student").ToList()); } }
public void Initialize() { using (var context = new EFRecipesEntities()) { // clean up context.ExecuteStoreCommand("delete from chapter9.mediacategory"); context.ExecuteStoreCommand("delete from chapter9.category"); context.ExecuteStoreCommand("delete from chapter9.media"); context.ExecuteStoreCommand("delete from chapter9.mediatype"); // insert some test data var mediaType = new MediaType { MediaTypeId = 1, Description = "Article" }; var media1 = new Medium { Title = "How to Design a Brick Fireplace", MediaType = mediaType }; var media2 = new Medium { Title = "Repairing a Brick Oven", MediaType = mediaType }; context.Media.AddObject(media1); context.Media.AddObject(media2); context.SaveChanges(); } }
public TravelAgent GetAgentWithBookings() { InsertAgent(); using (var context = new EFRecipesEntities()) { return(context.TravelAgents.Include("Bookings").Single(a => a.Name == "John Tate")); } }
public void Cleanup() { using (var context = new EFRecipesEntities()) { context.ExecuteStoreCommand("delete from chapter9.comment"); context.ExecuteStoreCommand("delete from chapter9.post"); } }
public void SubmitCategory(Category category) { using (var context = new EFRecipesEntities()) { context.Categories.ApplyChanges(category); context.SaveChanges(); } }
public void DeleteComment(Comment comment) { using (var context = new EFRecipesEntities()) { context.Comments.Attach(comment); context.Comments.DeleteObject(comment); context.SaveChanges(); } }
public Post GetPostByTitle(string title) { using (var context = new EFRecipesEntities()) { context.ContextOptions.ProxyCreationEnabled = false; var post = context.Posts.Include("Comments").Single(p => p.Title == title); return(post); } }
public CustomerComplaint GetNextComplaint() { using (var context = new EFRecipesEntities()) { var complaint = context.CustomerComplaints.Where(c => c.ActionTaken == null).First(); complaint.StartTracking(); return(complaint); } }
private void ValidateAgentAfterApplyChanges(EFRecipesEntities context) { var cantDelete = context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted).Any(e => e.Entity is Booking && ((Booking)e.Entity).Paid); ValidateCondition(cantDelete, "Can't delete a booking that is paid for."); var cantBook = context.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Any(e => e.Entity is Booking && ((Booking)e.Entity).BookingDate.Subtract(DateTime.Today).Days > 20); ValidateCondition(cantBook, "Can't book more than 20 days in advance."); }
public void SubmitAgentBookings(TravelAgent agent) { using (var context = new EFRecipesEntities()) { ValidateAgentBeforeApplyChanges(agent); context.TravelAgents.ApplyChanges(agent); ValidateAgentAfterApplyChanges(context); context.SaveChanges(); } }
public CustomerComplaint UpdateComplaint(CustomerComplaint complaint) { using (var context = new EFRecipesEntities()) { context.CustomerComplaints.ApplyChanges(complaint); context.SaveChanges(); complaint.AcceptChanges(); return(complaint); } }
public void InsertTestRecord() { using (var context = new EFRecipesEntities()) { context.ExecuteStoreCommand("delete from chapter13.customercomplaint"); var complaint = new CustomerComplaint { Comment = "Your store should open early on Saturdays", ReportedBy = "Jill Morgan" }; context.CustomerComplaints.AddObject(complaint); context.SaveChanges(); } }
public Student SubmitStudentEnrollment(Student student) { using (var context = new EFRecipesEntities()) { context.Students.ApplyChanges(student); context.SaveChanges(); student.AcceptChanges(); foreach (var enrollment in student.Enrollments) { enrollment.AcceptChanges(); } return(student); } }
static void RunExample() { using (var context = new EFRecipesEntities()) { context.Configuration.AutoDetectChangesEnabled = false; var speaker1 = new Speaker { Name = "Karen Stanfield" }; var talk1 = new Talk { Title = "Simulated Annealing in C#" }; speaker1.Talks = new List <Talk> { talk1 }; // associations not yet complete Console.WriteLine("talk1.Speaker is null: {0}", talk1.Speakers == null); context.Speakers.Add(speaker1); // now it's fixed up Console.WriteLine("talk1.Speaker is null: {0}", talk1.Speakers == null); Console.WriteLine("Number of added entries tracked: {0}", context.ChangeTracker.Entries().Where(e => e.State == System.Data.Entity.EntityState.Added).Count()); context.SaveChanges(); // change the talk's title talk1.Title = "AI with C# in 3 Easy Steps"; Console.WriteLine("talk1's state is: {0}", context.Entry(talk1).State); context.ChangeTracker.DetectChanges(); Console.WriteLine("talk1's state is: {0}", context.Entry(talk1).State); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { foreach (var speaker in context.Speakers.Include("Talks")) { Console.WriteLine("Speaker: {0}", speaker.Name); foreach (var talk in speaker.Talks) { Console.WriteLine("\tTalk Title: {0}", talk.Title); } } } }
static void RunExample() { int itemId = 0; using (var context = new EFRecipesEntities()) { var item = new Item { Name = "Xcel Camping Tent", UnitPrice = 99.95M }; context.Items.Add(item); context.SaveChanges(); // keep the item id for the next step itemId = item.ItemId; Console.WriteLine("Item: {0}, UnitPrice: {1}", item.Name, item.UnitPrice.ToString("C")); } using (var context = new EFRecipesEntities()) { // pretend this is the updated // item we received with the new price var item = new Item { ItemId = itemId, Name = "Xcel Camping Tent", UnitPrice = 129.95M }; var originalItem = context.Items.Where(x => x.ItemId == itemId).FirstOrDefault <Item>(); context.Entry(originalItem).CurrentValues.SetValues(item); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { var item = context.Items.Single(); Console.WriteLine("Item: {0}, UnitPrice: {1}", item.Name, item.UnitPrice.ToString("C")); } Console.WriteLine("Enter input as exit to exit.:"); string line = Console.ReadLine(); if (line == "exit") { return; } ; }
private static async Task Cleanup() { using (var context = new EFRecipesEntities()) { // delete previous test data // execute raw sql statement asynchronoulsy Console.WriteLine("Cleaning Up Previous Test Data"); Console.WriteLine("=========\n"); await context.Database.ExecuteSqlCommandAsync("delete from chapter3.AssociateSalary"); await context.Database.ExecuteSqlCommandAsync("delete from chapter3.Associate"); await Task.Delay(5000); } }
public Post SubmitPost(Post post) { using (var context = new EFRecipesEntities()) { context.Posts.Attach(post); if (post.PostId == 0) { // this must be an insert context.ObjectStateManager.ChangeObjectState(post, EntityState.Added); } else { context.ObjectStateManager.ChangeObjectState(post, EntityState.Modified); } context.SaveChanges(); return(post); } }
private static async Task RunSingleOrDefaultAsyncExampe() { using (var context = new EFRecipesEntities()) { Console.WriteLine("\n\nAsync SingleOrDefault Call"); Console.WriteLine("========="); var associate = await context.Associates .Include("Associates.AssociateSalaries") .OrderBy(x => x.Name) .FirstOrDefaultAsync(y => y.Name == "Kevin Hodges"); Console.WriteLine("Here are the salaries for Associate {0}:", associate.Name); foreach (var salaryInfo in associate.AssociateSalaries) { Console.WriteLine("\t{0}", salaryInfo.Salary); } await Task.Delay(5000); } }
private static async Task LoadData() { using (var context = new EFRecipesEntities()) { // add new test data Console.WriteLine("Adding Test Data"); Console.WriteLine("=========\n"); var assoc1 = new Associate { Name = "Janis Roberts" }; var assoc2 = new Associate { Name = "Kevin Hodges" }; var assoc3 = new Associate { Name = "Bill Jordan" }; var salary1 = new AssociateSalary { Salary = 39500M, SalaryDate = DateTime.Parse("8/4/09") }; var salary2 = new AssociateSalary { Salary = 41900M, SalaryDate = DateTime.Parse("2/5/10") }; var salary3 = new AssociateSalary { Salary = 33500M, SalaryDate = DateTime.Parse("10/08/09") }; assoc1.AssociateSalaries.Add(salary1); assoc2.AssociateSalaries.Add(salary2); assoc3.AssociateSalaries.Add(salary3); context.Associates.Add(assoc1); context.Associates.Add(assoc2); context.Associates.Add(assoc3); // update datastore asynchronoulsy await context.SaveChangesAsync(); await Task.Delay(5000); } }
public Comment SubmitComment(Comment comment) { using (var context = new EFRecipesEntities()) { context.Comments.Attach(comment); if (comment.CommentId == 0) { // this is an insert context.ObjectStateManager.ChangeObjectState(comment, EntityState.Added); } else { var entry = context.ObjectStateManager.GetObjectStateEntry(comment); entry.SetModifiedProperty("CommentText"); } context.SaveChanges(); return(comment); } }
private void InsertAgent() { using (var context = new EFRecipesEntities()) { // delete any previous test data context.ExecuteStoreCommand("delete from chapter9.booking"); context.ExecuteStoreCommand("delete from chapter9.travelagent"); // inser the test data var agent = new TravelAgent { Name = "John Tate" }; var booking = new Booking { Customer = "Karen Stevens", Paid = false, BookingDate = DateTime.Parse("2/2/2010") }; agent.Bookings.Add(booking); context.TravelAgents.AddObject(agent); context.SaveChanges(); } }
private static async Task RunForEachAsyncExample() { using (var context = new EFRecipesEntities()) { Console.WriteLine("Async ForEach Call"); Console.WriteLine("========="); // leverage ForEachAsync await context.Associates .Include(x => x.AssociateSalaries) .ForEachAsync( x => { Console.WriteLine("Here are the salaries for Associate {0}:", x.Name); foreach (var salary in x.AssociateSalaries) { Console.WriteLine("\t{0}", salary.Salary); } }); await Task.Delay(5000); } }
private static async Task RunToListAsyncExampe() { using (var context = new EFRecipesEntities()) { Console.WriteLine("\n\nAsync ToList Call"); Console.WriteLine("========="); // leverage ToListAsync var associates = await context.Associates .Include(x => x.AssociateSalaries) .OrderBy(x => x.Name).ToListAsync(); foreach (var associate in associates) { Console.WriteLine("Here are the salaries for Associate {0}:", associate.Name); foreach (var salaryInfo in associate.AssociateSalaries) { Console.WriteLine("\t{0}", salaryInfo.Salary); } } await Task.Delay(5000); } }
static void RunExample() { using (var context = new EFRecipesEntities()) { context.Employees.Add(new Employee { Name = new Name { FirstName = "Annie", LastName = "Oakley" }, Email = "*****@*****.**" }); context.Employees.Add(new Employee { Name = new Name { FirstName = "Bill", LastName = "Jordan" }, Email = "*****@*****.**" }); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { foreach (var employee in context.Employees.OrderBy(e => e.Name.LastName)) { Console.WriteLine("{0}, {1} email: {2}", employee.Name.LastName, employee.Name.FirstName, employee.Email); } } int id = 0; using (var context = new EFRecipesEntities()) { var emp = context.Employees.Where(e => e.Name.FirstName.StartsWith("Bill")).FirstOrDefault(); id = emp.EmployeeId; } using (var context = new EFRecipesEntities()) { var empDelete = new Employee { EmployeeId = id, Name = new Name { FirstName = string.Empty, LastName = string.Empty } }; context.Employees.Attach(empDelete); context.Employees.Remove(empDelete); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { foreach (var employee in context.Employees.OrderBy(e => e.Name.LastName)) { Console.WriteLine("{0}, {1} email: {2}", employee.Name.LastName, employee.Name.FirstName, employee.Email); } } Console.WriteLine("Enter input:"); string line = Console.ReadLine(); if (line == "exit") { return; } ; }
static void RunExample() { using (var context = new EFRecipesEntities()) { var tea = new Product { ProductName = "Green Tea", UnitPrice = 1.09M }; var coffee = new Product { ProductName = "Colombian Coffee", UnitPrice = 2.15M }; var customer = new Customer { ContactName = "Karen Marlowe" }; var order1 = new Order { OrderDate = DateTime.Parse("10/06/13") }; order1.OrderDetails.Add(new OrderDetail { Product = tea, Quantity = 4, UnitPrice = 1.00M }); order1.OrderDetails.Add(new OrderDetail { Product = coffee, Quantity = 3, UnitPrice = 2.15M }); customer.Orders.Add(order1); context.Customers.Add(customer); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { var query = context.Customers.Include("Orders.OrderDetails.Product"); foreach (var customer in query) { Console.WriteLine("Orders for {0}", customer.ContactName); foreach (var order in customer.Orders) { Console.WriteLine("--Order Date: {0}--", order.OrderDate.ToShortDateString()); foreach (var detail in order.OrderDetails) { Console.WriteLine( "\t{0}, {1} units at {2} each, unit discount: {3}", detail.Product.ProductName, detail.Quantity.ToString(), detail.UnitPrice.ToString("C"), (detail.Product.UnitPrice - detail.UnitPrice).ToString("C")); } } } } Console.WriteLine("Enter input to exit:"); string line = Console.ReadLine(); if (line == "exit") { return; } ; }
static void RunExample() { using (var context = new EFRecipesEntities()) { var venue = new Venue { Name = "Sports and Recreational Grounds" }; var event1 = new Event { Name = "Inter-school Soccer" }; event1.Competitors.Add(new Competitor { Name = "St. Mary's School" }); event1.Competitors.Add(new Competitor { Name = "City School" }); venue.Events.Add(event1); context.Venues.Add(venue); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { foreach (var venue in context.Venues.Include("Events").Include("Events.Competitors")) { Console.WriteLine("Venue: {0}", venue.Name); foreach (var evt in venue.Events) { Console.WriteLine("\tEvent: {0}", evt.Name); Console.WriteLine("\t--- Competitors ---"); foreach (var competitor in evt.Competitors) { Console.WriteLine("\t{0}", competitor.Name); } } } } using (var context = new EFRecipesEntities()) { foreach (var venue in context.Venues) { Console.WriteLine("Venue: {0}", venue.Name); context.Entry(venue).Collection(v => v.Events).Load(); foreach (var evt in venue.Events) { Console.WriteLine("\tEvent: {0}", evt.Name); Console.WriteLine("\t--- Competitors ---"); context.Entry(evt).Collection(e => e.Competitors).Load(); foreach (var competitor in evt.Competitors) { Console.WriteLine("\t{0}", competitor.Name); } } } } Console.WriteLine("Enter input:"); string line = Console.ReadLine(); if (line == "exit") { return; } ; }
static void RunExample() { using (var context = new EFRecipesEntities()) { var vh1 = new Vehicle { LicenseNo = "BR-549" }; var t1 = new Ticket { IssueDate = DateTime.Parse("06/10/13") }; var v1 = new Violation { Description = "20 MPH over the speed limit", Amount = 125M }; var v2 = new Violation { Description = "Broken tail light", Amount = 50M }; t1.Violations.Add(v1); t1.Violations.Add(v2); t1.Vehicle = vh1; context.Tickets.Add(t1); var vh2 = new Vehicle { LicenseNo = "XJY-902" }; var t2 = new Ticket { IssueDate = DateTime.Parse("06/12/13") }; var v3 = new Violation { Description = "Parking in a no parking zone", Amount = 35M }; t2.Violations.Add(v3); t2.Vehicle = vh2; context.Tickets.Add(t2); context.SaveChanges(); } using (var context = new EFRecipesEntities()) { foreach (var ticket in context.Tickets) { Console.WriteLine(" Ticket: {0}, Total Cost: {1}", ticket.TicketId.ToString(), ticket.Violations.Sum(v => v.Amount).ToString("C")); foreach (var violation in ticket.Violations) { Console.WriteLine("\t{0}", violation.Description); } } } Console.WriteLine("Enter input:"); string line = Console.ReadLine(); if (line == "exit") { return; } ; }