Net platformasi bilan tanishish clr, cts va cls


Download 428.24 Kb.
bet13/18
Sana07.05.2023
Hajmi428.24 Kb.
#1437478
1   ...   10   11   12   13   14   15   16   17   18
Bog'liq
C# методичка

ORM EntityFramework
Entity Framework ma'lumotlar bilan ishlash uchun.net ramkasiga asoslangan maxsus ob'ektga yo'naltirilgan texnologiyani taqdim etadi. Agar an'anaviy vositalar ADO.NET ma'lumotlar bazalari bilan o'zaro aloqada bo'lish uchun ulanishlar, buyruqlar va boshqa ob'ektlarni yaratishga imkon beradi, keyin Entity Framework ma'lumotlar bazasining o'zidan mavhumlash va saqlash turidan qat'i nazar ma'lumotlar bilan ishlashga imkon beradigan abstraktsiyaning yuqori darajasidir. Agar jismoniy darajada biz jadvallar, indekslar, asosiy va tashqi kalitlar bilan ishlasak, lekin Entity Framework bizga taqdim etadigan kontseptual darajada bo'lsa, biz allaqachon ob'ektlar bilan ishlaydi.
Entity Framework - 1.0 ning birinchi versiyasi 2008 yilda paydo bo'lgan va juda cheklangan funksionallik, orm (Object-relational mapping - Real ob'ektlarga ma'lumotlarni xaritalash) uchun asosiy qo'llab - quvvatlash va ma'lumotlar bazasi bilan o'zaro aloqada bo'lgan yagona yondashuv-Database First. 2010 yilda 4.0 versiyasi chiqarilishi bilan ko'p narsa o'zgardi - shu vaqtdan boshlab Entity Framework ma'lumotlarga kirish uchun tavsiya etilgan texnologiyaga aylandi va ramkaning o'zida Model First va Code First ma'lumotlar bazasi yondashuvlari bilan o'zaro ishlashning yangi imkoniyatlari joriy etildi.
2012 yilda 5.0 versiyasi chiqarilishi bilan qo'shimcha funktsiyalar yaxshilandi. Va nihoyat, 2013 yilda Entity Framework 6.0 chiqarildi, bu ma'lumotlarga asenkron kirish imkoniyatiga ega.
Entity Framework-ning Markaziy tushunchasi-bu shaxs yoki shaxs tushunchasi. Ob'ekt-bu ma'lum bir ob'ekt bilan bog'liq ma'lumotlar to'plami. Shuning uchun ushbu texnologiya jadvallar bilan emas, balki ob'ektlar va ularning to'plamlari bilan ishlashni o'z ichiga oladi.
Har qanday mavjudot, haqiqiy dunyodagi har qanday ob'ekt kabi, bir qator xususiyatlarga ega. Masalan, agar shaxs shaxsni tavsiflasa, unda biz ism, familiya, bo'y, yosh, vazn kabi xususiyatlarni ajratib ko'rsatishimiz mumkin. Xususiyatlar ixtiyoriy ravishda int tipidagi oddiy ma'lumotlarni aks ettiradi, lekin yanada murakkab ma'lumotlar tuzilmalarini aks ettirishi mumkin. Va har bir mohiyat bir yoki bir nechta xususiyatlarga ega bo'lishi mumkin, bu mohiyatni boshqalardan ajratib turadi va bu mohiyatni o'ziga xos tarzda belgilaydi. Bunday xususiyatlar kalitlar deb ataladi.
Bunday holda, sub'ektlar bir-biriga, bir-biriga va ko'p-ko'plarga assotsiativ bog'lanish bilan bog'lanishi mumkin, xuddi haqiqiy ma'lumotlar bazasida chet el kalitlari orqali aloqa qanday amalga oshiriladi.
Entity Framework-ning o'ziga xos xususiyati ma'lumotlar bazasidan ma'lumotlarni olish uchun LINQ so'rovlaridan foydalanishdir. LINQ yordamida biz nafaqat ma'lumotlar bazasidan ob'ektlarni saqlaydigan ma'lum qatorlarni ajratib olishimiz, balki turli assotsiativ aloqalar bilan bog'langan ob'ektlarni ham olishimiz mumkin.
Yana bir muhim tushuncha-bu Entity Data Model. Ushbu model ob'ektlar sinflarini ma'lumotlar bazasidagi haqiqiy jadvallar bilan taqqoslaydi.
Entity Data Model uchta darajadan iborat: kontseptual, saqlash darajasi va xaritalash darajasi (xaritalash).
Kontseptual darajada ilovada ishlatiladigan sub'ektlar sinflari aniqlanadi.
Saqlash qatlami jadvallarni, ustunlarni, jadvallar o'rtasidagi munosabatlarni va ishlatilgan ma'lumotlar bazasi mos keladigan ma'lumotlar turlarini belgilaydi.
Xaritalash darajasi (xaritalash) oldingi ikkitasi o'rtasida vositachi bo'lib xizmat qiladi, ob'ekt sinfining xususiyatlari va jadval ustunlari o'rtasidagi moslikni aniqlaydi.
Shunday qilib, biz dasturda belgilangan sinflar orqali ma'lumotlar bazasidagi jadvallar bilan o'zaro aloqada bo'lishimiz mumkin.
Ma'lumotlar bazasi bilan o'zaro ishlash usullari
Entity Framework ma'lumotlar bazasi bilan ishlashning uchta mumkin bo'lgan usulini o'z ichiga oladi:
Database first: Entity Framework ma'lum bir ma'lumotlar bazasi modelini aks ettiruvchi sinflar to'plamini yaratadi
Model birinchi: birinchidan, ishlab chiquvchi ma'lumotlar bazasi modelini yaratadi, undan keyin Entity Framework serverda haqiqiy ma'lumotlar bazasini yaratadi.
Birinchi kod: ishlab chiquvchi ma'lumotlar bazasida saqlanadigan ma'lumotlar modeli sinfini yaratadi, so'ngra ushbu modeldagi Entity Framework ma'lumotlar bazasi va uning jadvallarini yaratadi
To'g'ridan-to'g'ri Entity Framework bilan ishlashni boshlash uchun birinchi dasturni yarating. Buning uchun bizga, birinchi navbatda, rivojlanish muhiti kerak bo'ladi. Rivojlanish muhiti sifatida Visual Studio 2017-ni tanlang.
Loyihani yaratish oynasida chap tomonda Visual C#- \ u003e Windows Desktop bo'limini tanlang va oynaning Markaziy qismida loyiha turi sifatida Console App (. net Framework) - ni tanlang.
Bu ma'lum miqdordagi avtoulov xususiyatlarini o'z ichiga olgan oddiy sinf. Har bir xususiyat ma'lumotlar bazasidagi jadvaldagi alohida ustun bilan taqqoslanadi.
Shuni ta'kidlash kerakki, birinchi kod bilan ishlashda Entity Framework ma'lumotlar bazasidagi jadvalda asosiy kalitni yaratish uchun element kalitini aniqlashni talab qiladi. Odatiy bo'lib, ma'lumotlar bazasini yaratishda EF asosiy kalit sifatida Id yoki [class_name]Id (ya'ni UserId) nomlari bo'lgan xususiyatlarni ko'rib chiqadi. Agar biz asosiy xususiyatni boshqacha nomlamoqchi bo'lsak, unda C#ga qo'shimcha mantiq kiritishimiz kerak bo'ladi.
Endi ma'lumotlar bazasi bilan ishlash uchun bizga ma'lumotlar konteksti kerak. Bu ma'lumotlar bazasi va ma'lumotlarni tavsiflovchi sinflar o'rtasidagi vositachidir. Ammo, bizda EF uchun kutubxona hali sukut bo'yicha qo'shilmagan. Uni qo'shish uchun loyihani o'ng tugmasini bosing va kontekst menyusidan Nuget paketlarini boshqarish-ni tanlang...:
using System;
using System.Collections.Generic;
using System.Data.Entity;
namespace FirstEF6App{
class UserContext : DbContext{
public UserContext():base("DbConnection")
{ }
public DbSet Users { get; set; }}}

Entity Framework funktsiyalarining asosini tizim nomlari maydonida joylashgan sinflar tashkil etadi.Data.Entity. Ushbu nom maydonining barcha sinflari orasida quyidagilarni ta'kidlash kerak:


DbContext: ma'lumotlar bazasi bilan o'zaro aloqada bo'lish uchun ishlatiladigan ma'lumotlar kontekstini belgilaydi.
DbModelBuilder: C# tilidagi sinflarni ma'lumotlar bazasidagi ob'ektlar bilan moslashtiradi.
DbSet / DbSet: ma'lumotlar bazasida saqlangan ob'ektlar to'plamini ifodalaydi



Download 428.24 Kb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling