Sobes.tech
Junior

LINQ ning qanday turlari mavjud?

sobes.tech AI

AIdan javob

Asosiy uchta turdagi LINQ mavjud:

  1. Ob'ektlarga LINQ: Xotirada kolleksiyalarga (IEnumerable<T>, List<T>, Array va boshqalar) so'rovlar.
  2. XMLga LINQ: XML ma'lumotlariga so'rovlar (XDocument, XElement va boshqalar).
    // XMLga LINQ misoli
    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. ADO.NETga LINQ: Ma'lumotlar bazalarida saqlangan ma'lumotlarga so'rovlar. Quyidagilarni o'z ichiga oladi:
    • LINQ to SQL: Microsoft SQL Server bazalariga so'rovlar.
      // LINQ to SQL misoli
      // DataContext va DbSet<Product> mavjud deb faraz qilamiz
      var products = from p in dbContext.Products
                     where p.Price > 50
                     select p;
      
    • Entitiesga LINQ: Entity Frameworkning bir qismi, EF tomonidan qo'llab-quvvatlanadigan har qanday ma'lumotlar bazasiga so'rovlar.
      // Entity Framework Core bilan LINQ misoli
      // DbContext va DbSet<Order> mavjud deb faraz qilamiz
      var orders = from o in dbContext.Orders
                   where o.OrderDate.Year == 2023
                   orderby o.TotalAmount descending
                   select o;
      
    • DataSetga LINQ: DataSet va DataTable ob'ektlariga so'rovlar.
      // DataSetga LINQ misoli
      // DataSet ds va DataTable dt mavjud deb faraz qilamiz
      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")
                 };