• Visual Studio
  • Add New -> Table-valued Function
  • GetPhonesByPrice
  • Phones
  • Sql-so’rovlarlar bilan ishlashda saqlanadigan protseduralar va foydalanuvchi funksiyalari alohida ahamiyatga ega. C#




    Download 1,39 Mb.
    bet35/53
    Sana30.11.2023
    Hajmi1,39 Mb.
    #108476
    1   ...   31   32   33   34   35   36   37   38   ...   53
    Bog'liq
    Dasturiy injiniring

    Sql-so’rovlarlar bilan ishlashda saqlanadigan protseduralar va foydalanuvchi funksiyalari alohida ahamiyatga ega. C# tilida Sql Server ning foydalanuvchi funksiyasini chaqirishni ko’rib chiqamiz.
    Avvalo funksiyani hosil qilamiz. Bizning ma’lumotlar kontekstimizda quyidagi modellar aniqlangan bo’lsin:
    class PhoneContext : DbContext
    {
    public PhoneContext()
    : base("DBConnection")
    { }

    public DbSet Companies { get; set; }


    public DbSet Phones { get; set; }
    }

    class Company


    {
    public int Id { get; set; }
    public string Name { get; set; }

    public ICollection Phones { get; set; }


    public Company()
    {
    Phones = new List();
    }
    }

    class Phone


    {
    public int Id { get; set; }
    public string Name { get; set; }
    public int Price { get; set; }

    public int CompanyId { get; set; }


    public Company Company { get; set; }
    }
    Endi Visual Studio muhitining Database Explorer oynasidan DBni ochib olamiz. Buning uchun Database Explorer oynasidan Connect to Database tugmasini bosamiz:

    Ushbu ro'yxatdan zarur DBni tanlaymiz. Bizning misolda DB sifatida phonesdb ishlatiladi.



    DB ochilganidan so’ng Database Explorer oynadan Functions qismini topamiz va unga sichqonchaning o’ng tugmasini bosish lozim. Hosil qilingan kontekstli menyudan Add New -> Table-valued Function qismini tanlash lozim:

    So’ngra, Visual Studio quyidagi kodga ega bo’lgan skriptni generatsiya qiladi:


    CREATE FUNCTION [dbo].[Function]
    (
    @param1 int,
    @param2 char(5)
    )
    RETURNS @returntable TABLE
    (
    c1 int,
    c2 char(5)
    )
    AS
    BEGIN
    INSERT @returntable
    SELECT @param1, @param2
    RETURN
    END

    Ushbu skript (funksiya)ni quyidagicha o’zgartirib olamiz:


    CREATE FUNCTION [dbo].[PhonesByPrice'>GetPhonesByPrice]
    (
    @price int
    )
    RETURNS @returntable TABLE
    (
    Id int,
    Name nvarchar(50),
    Price int,
    CompanyId int
    )
    AS
    BEGIN
    INSERT @returntable
    SELECT * FROM Phones WHERE Price < @price
    RETURN
    END

    CREATE FUNCTION [dbo].[GetPhonesByPrice] ifodasi orqali GetPhonesByPrice funksiyasi hosil qilinadi. Ushbu yozuvdan so’ng parametrlar ro'yxati keltiriladi. Bizning funksiyamiz faqat bitta int tipiga mansub @price parametrini qabul qiladi.


    So’ngra funksiya qaytaradigan natija RETURNS @returntable TABLE ifodasi orqali aniqlangan. Qavslar ichida qaytariluvchi jadval o’zining ustunlari bilan aniqlangan. Bizning misolda ushbu natija tipi Phones jadvaliga mos tuzilmaga ega. Ya’ni ushbu jadval Phone klassiga mansub ob’ektlarni o’zida saqlaydi.

    Download 1,39 Mb.
    1   ...   31   32   33   34   35   36   37   38   ...   53




    Download 1,39 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Sql-so’rovlarlar bilan ishlashda saqlanadigan protseduralar va foydalanuvchi funksiyalari alohida ahamiyatga ega. C#

    Download 1,39 Mb.