Sobes.tech
Junior
117
questionbank

Какие существуют типы LINQ?

Ответ от нейросети

sobes.tech AI

Существует три основных типа LINQ:

  1. LINQ to Objects: Запросы к коллекциям (IEnumerable<T>, List<T>, Array, и т.д.) в памяти.
  2. LINQ to XML: Запросы к XML-данным (XDocument, XElement и т.д.).
    // Пример LINQ to 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 to ADO.NET: Запросы к данным, хранящимся в базах данных. Включает в себя:
    • LINQ to SQL: Запросы к базам данных Microsoft SQL Server.
      // Пример LINQ to SQL
      // предполагается, что есть DataContext и DbSet<Product>
      var products = from p in dbContext.Products
                     where p.Price > 50
                     select p;
      
    • LINQ to Entities: Часть Entity Framework, запросы к любой базе данных, поддерживаемой EF.
      // Пример LINQ to Entities (Entity Framework Core)
      // предполагается, что есть DbContext и DbSet<Order>
      var orders = from o in dbContext.Orders
                   where o.OrderDate.Year == 2023
                   orderby o.TotalAmount descending
                   select o;
      
    • LINQ to DataSet: Запросы к объектам DataSet и DataTable.
      // Пример LINQ to DataSet
      // предполагается, что есть DataSet ds и 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")
                 };