Dasturiy injiniring nazariy savollarga javoblar


Ma’lumotlar bazasidan shart asosida tanlash va proeksiya


Download 33.78 Kb.
bet8/8
Sana05.01.2022
Hajmi33.78 Kb.
#219707
1   2   3   4   5   6   7   8
Bog'liq
Dasturiy injiniring nazariy savollarga Javoblar tayyor

Ma’lumotlar bazasidan shart asosida tanlash va proeksiya

DBdan shart asosida tanlash uchun Where metodidan foydalanish lozim. DBda ishlab chiqarilgan tashkiloti "Samsung" bo‘lgan barcha telefonlarni aniqlash lozim bo‘lsin:



using (PhoneContext db = new PhoneContext())

{

var phones = db.Phones.Where(p => p.Company.Name == "Samsung");

foreach (Phone p in phones)

Console.WriteLine("{0}.{1} - {2}", p.Id, p.Name, p.Price);

}
DBdan biror modelga mos bitta ob’ektni aniqlash uchun Find() metodidan foydalanishimiz mumkin. Ushbu metod Linq metodi hisoblanmaydi. U DbSet klassida aniqlangan:

// id=3 bo‘lgan elementni aniqlash

Phone myphone = db.Phones.Find(3);

Console.WriteLine("{0}.{1} - {2}", myphone.Id, myphone.Name, myphone.Price);
Ammo alternativ sifatida Linq First()/FirstOrDefault() metodlaridan foydalanishimiz mumkin. Ular shart asosida aniqlangan elementlar ro‘yxatidan birinchi elementi qaytaradi.

FirstOrDefault() metodini ishlatish qulay bo‘lib, agar natija bo‘sh to‘plam bo‘lgan holda u null qiymatni qaytaradi. First() metodi esa ushbu holda xatolikni qaytaradi. Buning uchun quyidagi koddan foydalanish zarur:

Phone myphone = db.Phones.FirstOrDefault(p => p.Id == 3);

if (myphone != null)

Console.WriteLine(myphone.Name);
Endi proeksiyani amalga oshiramiz. Biz natijaga kompaniya nomini qo‘shishimiz lozim bo‘lsin. U holda Include metodidan foydalanib, ob’ektni boshqa jadvaldagi ob’ekt bilan bog‘lash mumkin:

var phones = db.Phones.Include(p => p.Company);

foreach (Phone p in newphones)

Console.WriteLine("{0}.{1} - {2}", p.Id, p.Company.Name, p.Price);

Ammo ko‘p hollarda tanlanadigan ob’ektning barcha xususiyatlari zarur emas. Ushbu holda Select metodi orqali olinayotgan ma’lumotlardan yangi tip hosil qilish mumkin:


16-savol Entity frameworkda LINQ. farq

Farq

Agar birinchi to‘plamdan ikkinchi to‘plamda mavjud bo‘lmagan elementlarni aniqlashimiz lozim bo‘lsa, Except metodidan foydalanamiz:



using (PhoneContext db = new PhoneContext())

{

var selector1 = db.Phones.Where(p => p.Price > 25000); // Samsung Galaxy S4, Samsung Galaxy S4, iPhone S4

var selector2 = db.Phones.Where(p => p.Name.Contains("Samsung")); // Samsung Galaxy S4, Samsung Galaxy S4

var phones = selector1.Except(selector2); // natija - iPhone S4
foreach (var item in phones)

Console.WriteLine(item.Name);


}

Yo’ldoshev va Abdijabborov Dilshod
Download 33.78 Kb.

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




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