1. Entity Framework Nima?


CreateDatabaseIfNotExists



Yüklə 113,77 Kb.
səhifə15/17
tarix10.12.2023
ölçüsü113,77 Kb.
#139237
1   ...   9   10   11   12   13   14   15   16   17
1. Entity Framework Nima

CreateDatabaseIfNotExists: standart sifatida ishlatiladigan initializator. Ma’lumotlar bazasini va ma’lumotlarini avtomatik ravishda o‘chirmaydi, lekin modellar tuzilishi va ma’lumotlar kontekstida o‘zgarish yuz berganda, istisno chiqariladi.

  • DropCreateDatabaseIfModelChanges: ushbu initializator ma’lumotlar bazasidagi jadvallarni aniqlangan modellarga muvofiqligini tekshiradi. Agar modellar jadvallarning ta’rifiga mos kelmasa, ma’lumotlar bazasi qayta tuziladi.

  • DropCreateDatabaseAlways: ushbu initializator har doim ma’lumotlar bazasini qayta tashkil qiladi.

    Biz initializatorlardan birini ishlatamiz. Buning uchun Seed metodini qayta aniqlashimiz kerak:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    class MyContextInitializer : DropCreateDatabaseAlways
    {
    protected override void Seed(MobileContext db)
    {
    Phone p1 = new Phone {Name = "Samsung Galaxy S5", Price = 14000 };
    Phone p2 = new Phone {Name = "Nokia Lumia 630", Price = 8000 };
    db.Phones.Add(p1);
    db.Phones.Add(p2);
    db.SaveChanges();
    }
    }
    public class Phone
    {
    public int Id { get; set; }
    public string Name { get; set; }
    public int Price { get; set; }
    }
    class MobileContext : DbContext
    {
    static MobileContext()
    {
    Database.SetInitializer(new MyContextInitializer());
    }
    public MobileContext() : base("DefaultConnection")
    { }
    public DbSet
    Phones { get; set; }
    }

    Aslida, tashabbuskor yuqorida ko‘rib chiqilgan sinflardan birida meros bo‘lib o‘tadi va konteks klassi tomonidan yoziladi: DropCreateDatabaseAlways.
    Barcha boshlang‘ich harakatlar Seed metodida amalga oshiriladi va ishga tushirishning o‘zi ma’lumotlar kontekstidan foydalanib ma’lumotlar bazasida oddiy ma’lumotlarni saqlashni o‘z ichiga oladi.
    Initializator ishlashi uchun uni chaqirish kerak. Initializatorni chaqirishning bir usulida uni konteks sinfining statik konstruktorida chaqirishni nazarda tutadi:

    1
    2
    3
    4

    static MobileContext()
    {
    Database.SetInitializer(new MyContextInitializer());
    }

    Yüklə 113,77 Kb.

    Dostları ilə paylaş:
  • 1   ...   9   10   11   12   13   14   15   16   17




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

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin