Entity Framework 6


DBdan biror modelga mos bitta ob’ektni aniqlash uchun Find()



Yüklə 1,54 Mb.
səhifə30/54
tarix17.06.2023
ölçüsü1,54 Mb.
#132013
1   ...   26   27   28   29   30   31   32   33   ...   54
EntityFramework(6,u) uzb

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:
using (PhoneContext db = new PhoneContext())
{
var phones = db.Phones.Select(p => new
{
Name = p.Name,
Price = p.Price,
Company = p.Company.Name
});

foreach (var p in phones)


Console.WriteLine("{0} ({1}) - {2}", p.Name, p.Company, p.Price);
}
Natijada Select metodi olingan ma’lumotlardan yangi tipni shakllantiradi. Ushbu holda yangi anonim tip hosil qilinayotgan bo‘lib, uning o‘rniga foydalanuvchi hosil qilgan tipdan foydalanish ham mumkin. Masalan,
bizda Model klassi aniqlangan bo‘lsin:
class Model
{
public string Name { get; set; }
public string Company { get; set; }
public int Price { get; set; }
}

Biz yuqoridagi misoldagi so‘rov natijasini ushbu tipga mos ob’ekt sifatida shakllantiramiz:


using (PhoneContext db = new PhoneContext())
{
var phones = db.Phones.Select(p => new Model
{
Name = p.Name,
Price = p.Price,
Company = p.Company.Name
});
foreach (Model p in phones)
Console.WriteLine("{0} ({1}) - {2}", p.Name, p.Company, p.Price);
}

Tartiblash


DBdan olingan ma’lumotlarni o‘sish tartibida tartiblash uchun, OrderBy metodi yoki orderby operatori xizmat qiladi. Name xususiyati bo‘yicha tartiblashni ko‘rib chiqamiz:
using (PhoneContext db = new PhoneContext())
{
var phones = db.Phones.OrderBy(p => p.Name);
foreach (Phone p in phones)
Console.WriteLine("{0}.{1} - {2}", p.Id, p.Name, p.Price);
}

Natijada Entity Framework quyidagi SQL ifodani generatsiya qiladi:


SELECT [Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Price] AS [Price],
[Extent1].[CompanyId] AS [CompanyId]
FROM [dbo].[Phones] AS [Extent1]
ORDER BY [Extent1].[Name] ASC



Yüklə 1,54 Mb.

Dostları ilə paylaş:
1   ...   26   27   28   29   30   31   32   33   ...   54




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin