コード例 #1
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();
        }
コード例 #2
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();
        }
コード例 #3
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();
            }
        }
コード例 #4
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();
        }