Sobes.tech
Junior

Quais são os tipos de LINQ?

sobes.tech IA

Resposta da IA

Existem três tipos principais de LINQ:

  1. LINQ para Objetos: Consultas a coleções (IEnumerable<T>, List<T>, Array, etc.) na memória.
  2. LINQ para XML: Consultas a dados XML (XDocument, XElement, etc.).
    // Exemplo de LINQ para XML
    XDocument doc = XDocument.Load("data.xml");
    var elements = from item in doc.Descendants("item")
                   where (int)item.Attribute("id") > 10
                   select new
                   {
                       Id = (int)item.Attribute("id"),
                       Name = (string)item.Element("name")
                   };
    
  3. LINQ para ADO.NET: Consultas a dados armazenados em bancos de dados. Inclui:
    • LINQ para SQL: Consultas a bancos de dados Microsoft SQL Server.
      // Exemplo de LINQ para SQL
      // Assume-se que há um DataContext e um DbSet<Product>
      var products = from p in dbContext.Products
                     where p.Price > 50
                     select p;
      
    • LINQ para Entidades: Parte do Entity Framework, consultas a qualquer banco de dados suportado pelo EF.
      // Exemplo de LINQ para Entidades (Entity Framework Core)
      // Assume-se que há um DbContext e um DbSet<Order>
      var orders = from o in dbContext.Orders
                   where o.OrderDate.Year == 2023
                   orderby o.TotalAmount descending
                   select o;
      
    • LINQ para DataSet: Consultas a objetos DataSet e DataTable.
      // Exemplo de LINQ para DataSet
      // Assume-se que há um DataSet ds e um DataTable dt
      var rows = from row in dt.AsEnumerable()
                 where row.Field<int>("Quantity") > 0
                 select new
                 {
                     ProductId = row.Field<int>("ProductId"),
                     Quantity = row.Field<int>("Quantity")
                 };