static void RealizarExclusao() { AdventureWorksByToolDataContext dc = new AdventureWorksByToolDataContext(); int id; Console.Clear(); Console.Write("Informe o id categoria que será excluida:"); if (Int32.TryParse(Console.ReadLine(), out id)) { ProductCategory pc = dc.ProductCategories.Single(p => p.ProductCategoryID == id); //Em sintaxe de pesquisa ficaria da seguinte forma: // //ProductCategory pc2 = (from p in dc.ProductCategories // where p.ProductCategoryID == id // select p).Single(); dc.ProductCategories.DeleteOnSubmit(pc); dc.SubmitChanges(); Console.WriteLine("Registro excluio com sucesso\n"); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } }
static void RealizarAlteracao() { AdventureWorksByToolDataContext dc = new AdventureWorksByToolDataContext(); string categoria; int id; Console.Clear(); Console.Write("Informe o id categoria que será alterada:"); if (Int32.TryParse(Console.ReadLine(), out id)) { ProductCategory pc = dc.ProductCategories.Single(p => p.ProductCategoryID == id); //Em sintaxe de pesquisa ficaria da seguinte forma: // //ProductCategory pc2 = (from p in dc.ProductCategories // where p.ProductCategoryID == id // select p).Single(); Console.WriteLine("\n\nInforme um novo nome para a categoria {0}:", pc.Name); categoria = Console.ReadLine(); if (!String.IsNullOrWhiteSpace(categoria)) { pc.Name = categoria; pc.ModifiedDate = DateTime.Now; dc.SubmitChanges(); Console.WriteLine("O registro {0}, alterado com sucesso\n", pc.ProductCategoryID); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } } }
static void RealizarInclusao() { AdventureWorksByToolDataContext dc = new AdventureWorksByToolDataContext(); string categoria; Console.WriteLine("Informe uma categoria:"); categoria = Console.ReadLine(); if (!String.IsNullOrWhiteSpace(categoria)) { ProductCategory pc = new ProductCategory(); pc.Name = categoria; pc.rowguid = Guid.NewGuid(); pc.ModifiedDate = DateTime.Now; dc.ProductCategories.InsertOnSubmit(pc); dc.SubmitChanges(); Console.WriteLine("O registro {0}, incluído com sucesso\n", pc.ProductCategoryID); } }
static void RealizarConsulta() { AdventureWorksByToolDataContext dc = new AdventureWorksByToolDataContext(); var result = from pc in dc.ProductCategories orderby pc.Name select pc; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.ProductCategories.OrderBy(pc => pc.Name); Console.WriteLine("Categorias:"); foreach (var item in result) { Console.WriteLine(item.Name); } Console.WriteLine(); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); }
static void Main(string[] args) { AdventureWorks dc = new AdventureWorks(@"Data Source=(local);Initial Catalog=AdventureWorks2012;User Id=sa;Password=saadmin;"); #region Consulta com uma tabela (Consulta manual - via código) var result = from pc in dc.ProductCategories orderby pc.Name select pc; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.ProductCategories.OrderBy(pc => pc.Name); foreach (var item in result) { Console.WriteLine(item.Name); } #endregion Console.WriteLine("-------------------------------------------------"); #region Consulta com relacionamento chave primária/chave estrangeira (Consulta manual - via código) var result2 = from pc in dc.ProductCategories orderby pc.Name select new { Nome = pc.Name, SubCategorias = pc.ProductSubcategories }; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.ProductCategories.OrderBy(pc => pc.Name).Select(pc => new {Nome = pc.Name, SubCategorias = pc.ProductSubcategories }); foreach (var item in result2) { Console.WriteLine("******************************"); Console.WriteLine("Subcategorias de {0}:", item.Nome); foreach (var sub in item.SubCategorias) { Console.WriteLine("{0}", sub.Name); } Console.WriteLine("******************************"); Console.WriteLine(""); } #endregion Console.WriteLine("-------------------------------------------------"); #region Consulta (via ferramenta) AdventureWorksByToolDataContext dc2 = new AdventureWorksByToolDataContext(); // Retorna o comando SQL dc2.Log = Console.Out; var result3 = from pc in dc2.ProductCategories orderby pc.Name select pc; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.ProductCategories.OrderBy(pc => pc.Name); foreach (var item in result3) { Console.WriteLine(item.Name); } #endregion #region Inclusão, alteração, deleção e consulta int op = 1; while (op != 0) { Console.Clear(); Console.WriteLine("Dentre as alternativas abaixo:"); Console.WriteLine("1 - Consultar"); Console.WriteLine("2 - Incluir"); Console.WriteLine("3 - Alterar"); Console.WriteLine("4 - Excluir"); Console.WriteLine("0 - Sair"); Console.WriteLine("Selecione uma opcao:"); if (!Int32.TryParse(Console.ReadLine().ToString(), out op)) { op = -1; } switch (op) { case 1: RealizarConsulta(); break; case 2: RealizarInclusao(); break; case 3: RealizarAlteracao(); break; case 4: RealizarExclusao(); break; case 0: Console.WriteLine("Bye!"); break; default: Console.WriteLine("Opcao invalida!\n\n"); Console.ReadKey(); break; } } #endregion #region Lidando com procedures (via código) IMultipleResults resultProcedure = dc.GetCategory(1); Console.WriteLine("Categorias:"); foreach (var item in resultProcedure.GetResult <CodeFirst.ProductCategory>()) { Console.WriteLine("{0} - {1}", item.ProductCategoryID, item.Name); } #endregion Console.WriteLine("-------------------------------------------------"); #region Lidando com procedures (via ferramenta) AdventureWorksByToolDataContext dcFerramenta = new AdventureWorksByToolDataContext(); var resultProcedureFerramenta = from pc in dcFerramenta.usp_GetCategory(1) orderby pc.Name select pc; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.usp_GetCategory(1).OrderBy(pc => pc.Name); Console.WriteLine("Categorias:"); foreach (var item in result) { Console.WriteLine("{0} - {1}", item.ProductCategoryID, item.Name); } #endregion Console.WriteLine("-------------------------------------------------"); #region Lidando com functions (via código) var resultFunction = from p in dc.FindSubcategories("bike") orderby p.Name descending select new { p.Name, p.ProductSubcategoryID, MaxPrice = dc.MaxPriceBySubcategory(p.ProductSubcategoryID) }; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.FindSubcategories("bike").OrderByDescending(pc => pc.Name).Select(p => new { p.Name, p.ProductSubcategoryID, MaxPrice = dc.MaxPriceBySubcategory(p.ProductSubcategoryID) }); Console.WriteLine("Subcategorias com bike no nome:"); foreach (var item in resultFunction) { Console.WriteLine("{0} - {1} - {2}", item.ProductSubcategoryID, item.Name, item.MaxPrice.GetValueOrDefault(0).ToString("C")); } #endregion Console.WriteLine("-------------------------------------------------"); #region Lidando com functions (via ferramenta) AdventureWorksByToolDataContext dcFunction = new AdventureWorksByToolDataContext(); var resultFunction2 = from pc in dcFunction.FindProductSubcategoriesByName("Shorts") orderby pc.Name select new { pc.Name, pc.ProductSubcategoryID, MaxPrice = dcFunction.GetMaxPriceBySubcategory(pc.ProductSubcategoryID) }; //Em sintaxe de método ficaria da seguinte forma: //var result = dc.FindProductSubcategoriesByName("Shorts").OrderByDescending(pc => pc.Name).Select(p => new { p.Name, p.ProductSubcategoryID, MaxPrice = dc.GetMaxPriceBySubcategory(p.ProductSubcategoryID) }); Console.WriteLine("Subcategorias com shorts no nome:"); foreach (var item in resultFunction2) { Console.WriteLine("{0} - {1} - {2}", item.ProductSubcategoryID, item.Name, item.MaxPrice.GetValueOrDefault(0).ToString("C")); } #endregion Console.WriteLine("-------------------------------------------------"); #region Consultas compiladas AdventureWorksByToolDataContext dcComplida = new AdventureWorksByToolDataContext(); Table <ProductSubcategory> ProductSubcategories = dcComplida.GetTable <ProductSubcategory>(); var query = CompiledQuery.Compile( (DataContext context, string filterName) => from p in ProductSubcategories where p.Name.Contains(filterName) select new { p.Name, p.ProductSubcategoryID }); Console.WriteLine("Subcategorias com Bike no nome:"); foreach (var item in query(dc, "Bike")) { Console.WriteLine("{0} - {1}", item.ProductSubcategoryID, item.Name); } Console.WriteLine("\n\nSubcategorias com Shorts no nome:"); foreach (var item in query(dc, "Shorts")) { Console.WriteLine("{0} - {1}", item.ProductSubcategoryID, item.Name); } #endregion Console.WriteLine("-------------------------------------------------"); #region Executando consultas diretas AdventureWorksByToolDataContext dcDiretas = new AdventureWorksByToolDataContext(); var resultDiretas = dcDiretas.ExecuteQuery <ProductSubcategory>(@"SELECT TOP(50)PERCENT ProductSubcategoryID, Name, rowguid, ModifiedDate FROM Production.ProductSubcategory"); Console.WriteLine("50% das subcategorias cadastradas:"); foreach (var item in resultDiretas) { Console.WriteLine("{0} - {1}", item.ProductSubcategoryID, item.Name); } #endregion Console.WriteLine("-------------------------------------------------"); Console.ReadKey(); }