• UserProfile
  • [Key]
  • Dasturiy injiniring (EntityFramework 6)




    Download 1,39 Mb.
    bet19/53
    Sana30.11.2023
    Hajmi1,39 Mb.
    #108476
    1   ...   15   16   17   18   19   20   21   22   ...   53
    Bog'liq
    Dasturiy injiniring

    Entity Framework da birga-bir bog‘lanish birga-ko’p bog‘lanishga o’xshash tarzda amalga oshiriladi. Bizda foydalanuvchilarni ifodalovchi User klassi mavjud bo’lib, unga mos ob’ektlarda login va parol saqlanadi. Foydalanuvchi profillari haqidagi ma’lumotlar esa UserProfile klassiga mos tuzilmada saqlanadi. User va UserProfile modellari o’zaro birga-bir aloqaga ega.

    using System;


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

    namespace OneToOneApp


    {

    public class User


    {
    public int Id { get; set; }
    public string Login { get; set; }
    public string Password { get; set; }

    public UserProfile Profile { get; set; }


    }

    public class UserProfile


    {
    [Key]
    [ForeignKey("User")]
    public int Id { get; set; }

    public string Name { get; set; }


    public int Age { get; set; }
    public User User { get; set; }
    }
    }
    Yuqoridagi tarzda amalga oshirilgan aloqada UserProfile klassi User klassiga nisbatan bo’ysunuvchi hisoblanadi. Modellar o'rtasida birga-bir aloqani o’rnatish uchun bo’ysunuvchi klassda bosh klassdagi kabi identifikator xususiyati o’rnatiladi. Yuqoridagi misolda ushbu vazifani User va UserProfile klasslaridagi Id xususiyati bajaradi.
    UserProfile klassida Id xususiyatida ikkita atribut o’rnatilgan: [Key] va [ForeignKey]. [Key] atributi Id xususiyatining birlamchi kalit ekanligini, [ForeignKey] atributi esa ushbu xususiyat tashqi kalit ekanligini anglatadi. Ushbu ikkilamchi kalit User jadvalidagi Id xususiyatiga mos qo’yilgan.
    Shuning uchun User va UserProfile klasslari o’zaro bir-biriga uzatmaga ega. Ma’lumotlar kontekstida ushbu klasslar DBdagi mos jadvallarni ifodalaydi:

    public class UserContext : DbContext


    {
    public DbSet Users { get; set; }
    public DbSet UserProfiles { get; set; }
    }

    Ushbu klasslar uchun ma’lumotlar konteksti asosida DBda quyidagi jadvallar hosil qilinadi:


    CREATE TABLE [dbo].[Users](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Login] [nvarchar](max) NULL,
    [Password] [nvarchar](max) NULL,
    CONSTRAINT [PK_dbo.Users] PRIMARY KEY CLUSTERED
    )

    CREATE TABLE [dbo].[UserProfiles] (


    [Id] INT NOT NULL,
    [Name] NVARCHAR (MAX) NULL,
    [Age] INT NOT NULL,
    CONSTRAINT [PK_dbo.UserProfiles] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_dbo.UserProfiles_dbo.Users_Id] FOREIGN KEY ([Id]) REFERENCES [dbo].[Users] ([Id])
    );

    Yuqoridagi klasslarga mos modellar ustida ba’zi amallarni ko’rib chiqamiz.



    Download 1,39 Mb.
    1   ...   15   16   17   18   19   20   21   22   ...   53




    Download 1,39 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dasturiy injiniring (EntityFramework 6)

    Download 1,39 Mb.