• SaveChangesAsync
  • AnyAsync
  • FirstOrDefaultAsync
  • SingleOrDefaultAsync
  • Smartphone ob’ekti Phones




    Download 1,39 Mb.
    bet52/53
    Sana30.11.2023
    Hajmi1,39 Mb.
    #108476
    1   ...   45   46   47   48   49   50   51   52   53
    Bog'liq
    Dasturiy injiniring

    Smartphone ob’ekti Phones jadvali bilan hech qanday bog‘lanishga ega bo’lmasada, ma’lumotlarni olishda ushbu jadval ham db.Phones ro'yxatda bo’ladi.



    1. Entity Framework da asinxronlik

    Аsinxron amallar
    Entity Framework 6.0 versiyadan asinxron amallar qo’llab-quvvatlanadi. Natijalarni ma’lumotlar bazasiga asinxron tarzda saqlash uchun SaveChangesAsync metodidan foydalaniladi.
    Ob’ektni Id bo’yicha asinxron tarzda olish uchun DbSet klassida FindAsync metodi aniqlangan.
    Linq to Entities: da ba’zi metodlar asinxron nusxalarga ega:

    • ForEachAsync: ma’lumotlarni asinxron tarzda olish va ular ustida muayyan amallarni bajarish;

    • AllAsync: barcha elementlarning muayyan shartni bajarishini aniqlash;

    • AnyAsync: tanlash operatoridagi kamida bitta element shartni qanoatlantirishini aniqlash;

    • AverageAsync: o'rtacha qiymatni asinxron tarzda olish;

    • ContainsAsync: muayyan elementning ro'yxatda mavjudligi aniqlanadi;

    • CountAsync: ro'yxatdagi elementlar soni aniqlanadi;

    • FirstAsync: ro'yxatdagi birinchi elementni olish;

    • FirstOrDefaultAsync: ro'yxatdagi birinchi elementni yoki boshlang‘ich qiymatni olish;

    • LoadAsync: ma’lumotlarni asinxron tarzda keshga yuklash;

    • MaxAsync: ro'yxatdagi maksimal elementni olish;

    • MinAsync: ro'yxatdagi minimal elementni olish;

    • SingleAsync: ro'yxatdagi bitta elementni olish;

    • SingleOrDefaultAsync: ro'yxatdagi bitta elementni yoki boshlang‘ich qiymatni olish;

    • SumAsync: qiymatlar yig‘indisini asinxron tarzda olish.

    Ushbu metodlar Task yoki Task ob’ektini qaytaradi.

    Ma’lumotlar bazasidan asinxron tarzda ma’lumotlarni olamiz va saqlaymiz:


    using System;


    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Entity;
    using System.Threading.Tasks;

    class Program


    {
    static void Main(string[] args)
    {
    Phone p = new Phone { Name = "Nokia Lumia 930", Price = 13000 };

    SaveObjectsAsync(p).Wait();


    Task t = GetObjectsAsync();


    t.Wait();

    Console.Read();


    }
    public static async Task GetObjectsAsync()
    {
    using (MobileContext db = new MobileContext())
    {
    await db.Phones.ForEachAsync(p =>
    {
    Console.WriteLine("{0} ({1})", p.Name, p.Price);
    });
    }
    }

    private static async Task SaveObjectsAsync(Phone p)


    {
    using (MobileContext db = new MobileContext())
    {
    db.Phones.Add(p);
    await db.SaveChangesAsync();
    }
    }
    }



    Download 1,39 Mb.
    1   ...   45   46   47   48   49   50   51   52   53




    Download 1,39 Mb.