Example #1
0
        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);
     }
 }
Example #11
0
 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();
     }
 }
Example #14
0
 public CustomerComplaint UpdateComplaint(CustomerComplaint complaint)
 {
     using (var context = new EFRecipesEntities())
     {
         context.CustomerComplaints.ApplyChanges(complaint);
         context.SaveChanges();
         complaint.AcceptChanges();
         return(complaint);
     }
 }
Example #15
0
 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);
     }
 }
Example #17
0
        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);
                    }
                }
            }
        }
Example #18
0
        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;
            }
            ;
        }
Example #19
0
        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);
     }
 }
Example #21
0
        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);
            }
        }
Example #22
0
        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();
            }
        }
Example #25
0
        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);
            }
        }
Example #26
0
        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;
            }
            ;
        }
Example #30
0
        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;
            }
            ;
        }