예제 #1
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter3.organization");
     }
 }
예제 #2
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var wo1 = new WorkOrder {
                    RequestDate = DateTime.Parse("11/04/09"), Problem = "Printer needs paper in shipping.", IsPriority = false
                };
                var wo2 = new WorkOrder {
                    RequestDate = DateTime.Parse("11/04/09"), Problem = "Main site database server is down!", IsPriority = true
                };
                var wo3 = new WorkOrder {
                    RequestDate = DateTime.Parse("11/04/09"), Problem = "Backup job complete, remove tape.", IsPriority = false
                };
                context.WorkOrders.AddObject(wo1);
                context.WorkOrders.AddObject(wo2);
                context.WorkOrders.AddObject(wo3);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                Console.WriteLine("Work Orders");
                Console.WriteLine("===========");
                foreach (var wo in context.WorkOrders)
                {
                    Console.WriteLine("{0}\t{1}\t{2}", wo.RequestDate.ToShortDateString(), wo.Problem, wo.IsPriority ? "High" : "Normal");
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #3
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var resume = new XElement("Person",
                                          new XElement("Name", "Robin St.James"),
                                          new XElement("Phone", "817 867-5201"),
                                          new XElement("FirstOffice", "Dog Catcher"),
                                          new XElement("SecondOffice", "Mayor"),
                                          new XElement("ThirdOffice", "State Senator"));
                var can = new Candidate {
                    Name = "Robin St.James", CandidateResume = resume
                };
                context.Candidates.AddObject(can);
                context.SaveChanges();
                can.CandidateResume.SetElementValue("Phone", "817 555-5555");
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                foreach (var can in context.Candidates)
                {
                    Console.WriteLine("{0}", can.Name);
                    Console.WriteLine("Phone: {0}", can.CandidateResume.Element("Phone").Value);
                    Console.WriteLine("First Political Office: {0}", can.CandidateResume.Element("FirstOffice").Value);
                    Console.WriteLine("Second Political Office: {0}", can.CandidateResume.Element("SecondOffice").Value);
                    Console.WriteLine("Third Political Office: {0}", can.CandidateResume.Element("ThirdOffice").Value);
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #4
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter10.product");
     }
 }
예제 #5
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                context.ExecuteStoreCommand(@"insert into chapter6.toy 
                            (Name,ForDonationOnly) values ('RagDoll',1)");
                var toy = new Toy {
                    Name = "Fuzzy Bear", Price = 9.97M
                };
                var refurb = new RefurbishedToy {
                    Name = "Derby Car", Price = 19.99M, Quality = "Ok to sell"
                };
                context.Toys.AddObject(toy);
                context.Toys.AddObject(refurb);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                Console.WriteLine("All Toys");
                Console.WriteLine("========");
                foreach (var toy in context.Toys)
                {
                    Console.WriteLine("{0}", toy.Name);
                }
                Console.WriteLine("\nRefurbished Toys");
                foreach (var toy in context.Toys.OfType <RefurbishedToy>())
                {
                    Console.WriteLine("{0}, Price = {1}, Quality = {2}", toy.Name, toy.Price, ((RefurbishedToy)toy).Quality);
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #6
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var cust1 = new Customer {
                    Name = "Robin Rosen", City = "Raytown"
                };
                var card1 = new CreditCard {
                    CardNumber = "41949494338899", ExpirationDate = DateTime.Parse("12/2010"), Type = "Visa"
                };
                var trans1 = new Transaction {
                    Amount = 29.95M
                };
                card1.Transactions.Add(trans1);
                cust1.CreditCards.Add(card1);
                var cust2 = new Customer {
                    Name = "Bill Meyers", City = "Raytown"
                };
                var card2 = new CreditCard {
                    CardNumber = "41238389484448", ExpirationDate = DateTime.Parse("12/2013"), Type = "Visa"
                };
                var trans2 = new Transaction {
                    Amount = 83.39M
                };
                card2.Transactions.Add(trans2);
                cust2.CreditCards.Add(card2);
                context.Customers.AddObject(cust1);
                context.Customers.AddObject(cust2);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                var customers    = context.Customers.Where(c => c.City == "Raytown");
                var creditCards  = customers.SelectMany(c => c.CreditCards);
                var transactions = creditCards.SelectMany(cr => cr.Transactions);

                // execute queries, EF fixes up associations
                customers.ToList();
                creditCards.ToList();
                transactions.ToList();

                foreach (var customer in customers)
                {
                    Console.WriteLine("Customer: {0} in {1}", customer.Name, customer.City);
                    foreach (var creditCard in customer.CreditCards)
                    {
                        Console.WriteLine("\tCard: {0} expires on {1}", creditCard.CardNumber, creditCard.ExpirationDate.ToShortDateString());
                        foreach (var trans in creditCard.Transactions)
                        {
                            Console.WriteLine("\t\tTransaction: {0}", trans.Amount.ToString("C"));
                        }
                    }
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #7
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.Database.ExecuteSqlCommand("delete from chapter13.track");
         context.Database.ExecuteSqlCommand("delete from chapter13.cd");
     }
 }
예제 #8
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter11.webcustomer");
         context.ExecuteStoreCommand("delete from chapter11.zip");
     }
 }
예제 #9
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter6.refurbishedtoy");
         context.ExecuteStoreCommand("delete from chapter6.toy");
     }
 }
예제 #10
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter15.workorder");
         context.ExecuteStoreCommand("delete from chapter15.priorityworkorder");
     }
 }
예제 #11
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter5.movie");
         context.ExecuteStoreCommand("delete from chapter5.category");
     }
 }
예제 #12
0
 static void Cleanup()
 {
     using (var context = new EFRecipesEntities())
     {
         context.ExecuteStoreCommand("delete from chapter13.[transaction]");
         context.ExecuteStoreCommand("delete from chapter13.creditcard");
         context.ExecuteStoreCommand("delete from chapter13.customer");
     }
 }
예제 #13
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var cat1 = new Category {
                    Name = "Science Fiction", ReleaseType = "DVD"
                };
                var cat2 = new Category {
                    Name = "Thriller", ReleaseType = "Blu-Ray"
                };
                new Movie {
                    Name = "Return to the Moon", Category = cat1, Rating = "PG-13"
                };
                new Movie {
                    Name = "Street Smarts", Category = cat2, Rating = "PG-13"
                };
                new Movie {
                    Name = "Alien Revenge", Category = cat1, Rating = "R"
                };
                new Movie {
                    Name = "Saturday Nights", Category = cat1, Rating = "PG-13"
                };
                context.Categories.AddObject(cat1);
                context.Categories.AddObject(cat2);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                // filter on ReleaseType and Rating
                // create collection of anonymous types
                var cats = from c in context.Categories
                           where c.ReleaseType == "DVD"
                           select new
                {
                    category = c,
                    movies   = c.Movies.Where(m => m.Rating == "PG-13")
                };

                Console.WriteLine("PG-13 Movies Released on DVD");
                Console.WriteLine("============================");
                foreach (var c in cats)
                {
                    Category category = c.category;
                    Console.WriteLine("Category: {0}", category.Name);
                    foreach (var m in category.Movies)
                    {
                        Console.WriteLine("\tMovie: {0}", m.Name);
                    }
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #14
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var cd1 = context.CDs.Create <CD>();
                cd1.Title = "Abbey Road";
                cd1.Tracks.Add(new Track {
                    Title = "Come Together", Artist = "The Beatles"
                });
                var cd2 = context.CDs.Create <CD>();
                cd2.Title = "Cowboy Town";
                cd2.Tracks.Add(new Track {
                    Title = "Cowgirls Don't Cry", Artist = "Brooks & Dunn"
                });
                var cd3 = context.CDs.Create <CD>();
                cd3.Title = "Long Black Train";
                cd3.Tracks.Add(new Track {
                    Title = "In My Dreams", Artist = "Josh Turner"
                });
                cd3.Tracks.Add(new Track {
                    Title = "Jacksonville", Artist = "Josh Turner"
                });
                context.CDs.Add(cd1);
                context.CDs.Add(cd2);
                context.CDs.Add(cd3);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                // to trigger proxy generation we need to drop-down into the underlying
                // ObjectContext object as DbContext does not expose the CreateProxyTypes() method
                var objectContext = ((IObjectContextAdapter)context).ObjectContext;
                objectContext.CreateProxyTypes(new Type[] { typeof(CD), typeof(Track) });

                var proxyTypes = ObjectContext.GetKnownProxyTypes();
                Console.WriteLine("{0} proxies generated!", ObjectContext.GetKnownProxyTypes().Count());

                var cds = context.CDs.Include("Tracks");
                foreach (var cd in cds)
                {
                    Console.WriteLine("Album: {0}", cd.Title);
                    foreach (var track in cd.Tracks)
                    {
                        Console.WriteLine("\t{0} by {1}", track.Title, track.Artist);
                    }
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #15
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var book1 = new Book {
                    Title = "A Day in the Life", Publisher = "Colorful Press"
                };
                var book2 = new Book {
                    Title = "Spring in October", Publisher = "AnimalCover Press"
                };
                var dvd1 = new DVD {
                    Title = "Saving Sergeant Pepper", Rating = "G"
                };
                var dvd2 = new DVD {
                    Title = "Around The Block", Rating = "PG-13"
                };
                context.Products.AddObject(book1);
                context.Products.AddObject(book2);
                context.Products.AddObject(dvd1);
                context.Products.AddObject(dvd2);
                context.SaveChanges();

                // update a book and delete a dvd
                book1.Title = "A Day in the Life of Sergeant Pepper";
                context.DeleteObject(dvd2);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                Console.WriteLine("All Products");
                Console.WriteLine("============");
                foreach (var product in context.Products)
                {
                    if (product is Book)
                    {
                        Console.WriteLine("'{0}' published by {1}", product.Title, ((Book)product).Publisher);
                    }
                    else if (product is DVD)
                    {
                        Console.WriteLine("'{0}' is rated {1}", product.Title, ((DVD)product).Rating);
                    }
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #16
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var fte = new FullTimeEmployee {
                    FirstName = "Jane", LastName = "Doe", Salary = 71500M
                };
                context.Employees.AddObject(fte);
                fte = new FullTimeEmployee {
                    FirstName = "John", LastName = "Smith", Salary = 62500M
                };
                context.Employees.AddObject(fte);
                var hourly = new HourlyEmployee {
                    FirstName = "Tom", LastName = "Jones", Wage = 8.75M
                };
                context.Employees.AddObject(hourly);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                Console.WriteLine("--- All Employees ---");
                foreach (var emp in context.Employees)
                {
                    bool fullTime = emp is HourlyEmployee ? false : true;
                    Console.WriteLine("{0} {1} ({2})", emp.FirstName, emp.LastName, fullTime ? "Full Time" : "Hourly");
                }

                Console.WriteLine("--- Full Time ---");
                foreach (var fte in context.Employees.OfType <FullTimeEmployee>())
                {
                    Console.WriteLine("{0} {1}", fte.FirstName, fte.LastName);
                }

                Console.WriteLine("--- Hourly ---");
                foreach (var hourly in context.Employees.OfType <HourlyEmployee>())
                {
                    Console.WriteLine("{0} {1}", hourly.FirstName, hourly.LastName);
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }
예제 #17
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var o1 = new Organization {
                    Name = "ABC Electric", City = "Azle", State = "TX"
                };
                var o2 = new Organization {
                    Name = "PowWow Pests", City = "Miami", State = "FL"
                };
                var o3 = new Organization {
                    Name = "Grover Grass & Seed", City = "Fort Worth", State = "TX"
                };
                context.Organizations.AddObject(o1);
                context.Organizations.AddObject(o2);
                context.Organizations.AddObject(o3);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                var query = context.Organizations.Where("it.State = 'TX'");
                Console.WriteLine("Cities (using LINQ)");
                var cities = query.Select(o => o.City).Distinct().OrderBy(c => c);
                foreach (var city in cities)
                {
                    Console.WriteLine("{0}", city);
                }

                Console.WriteLine("Cities (using eSQL)");
                cities = query.SelectValue <string>("distinct it.City").OrderBy("it");
                foreach (var city in cities)
                {
                    Console.WriteLine("{0}", city);
                }

                Console.WriteLine("Press <enter> to continue...");
                Console.ReadLine();
            }
        }
예제 #18
0
        static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                var c1 = new WebCustomer {
                    Name = "Alex Stevens", Zip = "76039"
                };
                var c2 = new WebCustomer {
                    Name = "Janis Jones", Zip = "76040"
                };
                var c3 = new WebCustomer {
                    Name = "Cathy Robins", Zip = "76111"
                };
                context.Zips.AddObject(new Zip {
                    Latitude = 32.834298M, Longitude = -32.834298M, ZipCode = "76039"
                });
                context.Zips.AddObject(new Zip {
                    Latitude = 32.835298M, Longitude = -32.834798M, ZipCode = "76040"
                });
                context.Zips.AddObject(new Zip {
                    Latitude = 33.834298M, Longitude = -31.834298M, ZipCode = "76111"
                });
                context.WebCustomers.AddObject(c1);
                context.WebCustomers.AddObject(c2);
                context.WebCustomers.AddObject(c3);
                context.SaveChanges();
            }

            using (var context = new EFRecipesEntities())
            {
                string esql = @"select value c
                                from EFRecipesEntities.WebCustomers as c
                                join
                                (SELECT z.ZipCode,
                                    3958.75 * (SqlServer.Atan(SqlServer.Sqrt(1 - 
                                      SqlServer.power(((SqlServer.Sin(t2.Latitude/57.2958M) *
                                       SqlServer.Sin(z.Latitude/57.2958M)) + 
                                       (SqlServer.Cos(t2.Latitude/57.2958M) * SqlServer.Cos(z.Latitude/57.2958M) * 
                                        SqlServer.Cos((z.Longitude/57.2958M) -(t2.Longitude/57.2958M)))), 2)) /(
                                         ((SqlServer.Sin(t2.Latitude/57.2958M) * SqlServer.Sin(z.Latitude/57.2958M)) + 
                                          (SqlServer.Cos(t2.Latitude/57.2958M) * SqlServer.Cos(z.Latitude/57.2958M) * 
                                           SqlServer.Cos((z.Longitude/57.2958M) - (t2.Longitude/57.2958M))))))
                                 ) as DistanceInMiles
                                 FROM EFRecipesEntities.Zips AS z join
                                  (select top(1) z2.Latitude as Latitude,z2.Longitude as Longitude
                                   from EFRecipesEntities.Zips as z2
                                   where z2.ZipCode = @Zip
                                  ) as t2 on 1 = 1
                                ) as matchingzips on matchingzips.ZipCode = c.Zip
                               where matchingzips.DistanceInMiles <= @RadiusInMiles";

                var custs = context.CreateQuery <WebCustomer>(esql, new ObjectParameter("Zip", "76039"), new ObjectParameter("RadiusInMiles", 5));
                Console.WriteLine("Customers within 5 miles of 76039");
                foreach (var cust in custs)
                {
                    Console.WriteLine("Customer: {0}", cust.Name);
                }
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }