Linq texnologiyasi tavsifi


-rasm So'rov ifodasi (query expression) ning umumiy tavsifi


Download 124 Kb.
bet3/12
Sana02.02.2023
Hajmi124 Kb.
#1147259
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
hhhh

1.1.1-rasm
So'rov ifodasi (query expression) ning umumiy tavsifi
So'rov ifodalari(query expression) LINQ yoqilgan har qanday ma'lumot manbasidan ma'lumotlarni so'rash va o'zgartirish uchun ishlatilishi mumkin. Masalan, bitta so'rov SQL ma'lumotlar bazasidan ma'lumotlarni olishi va natijani chiqarish sifatida XML oqimini ishlab chiqishi mumkin.
So'rov ifodalari (query expression)ni tushunish oson, chunki ularda ko'plab tanish C# tili konstruksiyalaridan foydalaniladi.
Garchi ko'p hollarda tipni aniq ko'rsatish shart bo’lmasada, so'rov ifodasi (query expression)dagi o'zgaruvchilarning barchasi qat’iy yozilishi kerak, chunki kompilyator uni qabul qilishi mumkin.
So'rov o'zgaruvchisi, masalan, foreach sintaksisida uni takrorlamaguningizcha so'rov bajarilmaydi.
Kompilyatsiya vaqtida so'rov ifodalari (query expression) C# dagi o’ziga xos jihatlarga ko’ra belgilangan qoidalarga muvofiq standart so'rov operatori usulini chaqiruvlari (Standard Query Operator method calls)ga aylantiriladi. So'rovlar sintaksisi yordamida ifodalanishi mumkin bo'lgan har qanday so'rovni metod sintaksisi yordamida ham ifodalash mumkin. Biroq, ko'p hollarda so'rovlar sintaksisi yanada o'qilishga qulayroq va qisqa bo’ladi
Qoida tariqasida, LINQ so'rovlarini yozishda iloji boricha so'rovlar sintaksisi va kerak bo'lganda metodlar sintaksisidan foydalanishni tavsiya qilinadi.Bu ikkala uslub orasida ko’rinish yoki manoviy jihatdan hech qanday farq kuzatilmaydi.Biroq metodlar sintaksisida yozilgan variantlarga nisbatan so'rov ifodalari ko'proq uchraydi.
Count yoki Max kabi ba'zi so'rov operatsiyalarida ekvivalent so'rov ifodasi bandi yo'q va shuning uchun ular metod chaqiruvi usulida ifodalanishi kerak.Metod sintaksisi so'rovlar sintaksisi bilan turli usullarda birlashtirilishi ham mumkin.
So’rov – ma’lumotlar manbasidan ma’lumotlarni oladigan tuzilmadir. So’rovlar odatda maxsus so’rovlar tilida ifodalanadi. Vaqt o'tishi bilan har xil turdagi ma'lumotlar manbalari uchun turli tillar ishlab chiqilgan, masalan, relyatsion ma'lumotlar bazalari uchun SQL va XML uchun XQuery. Shu sababli, ishlab chiquvchilar qo'llab-quvvatlashi kerak bo'lgan har bir ma'lumot manbasi yoki ma'lumotlar formati uchun yangi so'rovlar tilini o'rganishlari kerak edi. LINQ turli xil ma'lumotlar manbalari va formatlarida ma'lumotlar bilan ishlash uchun izchil modelni taklif qilish orqali ushbu vaziyatni soddalashtiradi. LINQ so'rovida siz doimo ob'ektlar bilan ishlaysiz. Siz XML hujjatlari, SQL maʼlumotlar bazalari, ADO.NET maʼlumotlar toʻplami, .NET toʻplamlari va LINQ provayderi mavjud boʻlgan boshqa formatlardagi maʼlumotlarni soʻrash va oʻzgartirish uchun bir xil asosiy kodlashdan foydalanasiz.
Barcha LINQ so'rov operatsiyalari uchta alohida amallar ketma-ketligidan iborat:
1)ma'lumotlar bazasini aniqlash
2)so'rovni yaratish
3)so'rovni amalga oshirish
Quyidagi misolda so'rov operatsiyasining uchta qismi manba kodida qanday ifodalanganligi ko'rsatilgan. Misolda qulay bo’lishi uchun ma’lumotlar manbai sifatida butun sonli massivdan foydalanadi,ammo xuddi shu tushunchalar boshqa ma’lumotlar manbalariga ham tegishli bo’ladi.
class IntroToLINQ
{ static void Main()
{
// The Three Parts of a LINQ Query:
// 1. Data source.
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
// 2. Query creation.
// numQuery is an IEnumerable
var numQuery =
from num in numbers
where (num % 2) == 0
select num;
// 3. Query execution.
foreach (int num in numQuery)
{Console.Write("{0,1} ", num) }}}
Quyidagi rasmda so'rovning to'liq ishlashi ko'rsatilgan. LINQ da so'rovning bajarilishi so'rovning o'zidan farq qiladi. Boshqacha qilib aytganda, so'rov o'zgaruvchisini yaratish orqali hech qanday ma'lumot olinmaydi:


Download 124 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling