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(); }
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(); }
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(); } }
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(); }