ulanish satridan foydalansak, ma’lumotlar konteksti klassi konstruktorida parametr ko‘rsatilmasligi ham mumkin.
DBdagi ma’lumotlarni o‘qib olish uchun quyidagi koddan foydalanamiz:
using (UserContext db = new UserContext())
{
var users = db.Users;
foreach (User u in users)
{
Console.WriteLine("{0}.{1} - {2}", u.Id, u.Name, u.Age);
}
}
Foydalanish uchun tavsiya etiladigan adabiyotlar Троелсен Эндрю, Джепикс Филипп. Язык программирования C# 7 и платформы .NET и .NET Core. Вилямс. 2018
Албахари Бен, Албахари Джозеф. C# 7.0. Справоchник. Полное описание языка. Пер. с англ.-СПб: “Алфа-книга”, 2018, -1024 с.
Ю.С. Магда C#. Язык программирования Си Шарп. – Изд. ДМК Пресс, 2013, 190 с.
Лабор В.В. C#: Создание приложение для Windows. – Мн.: Харвест, 2003, 384 с.
ModelFirst orqali berilganlar bazasi bilan ishlash.
Model First Model First yondashuvi orqali Entity Framework bilan ishlash imkoniyati mavjud. Ushbu yondashuv asosida avvalo model hosil qilinadi. So‘ngra u asosida DB yaratiladi.
Buning uchun avvalo Console Application yangi loyihasini hosil yaratamiz. So‘ngra ushbu loyihaga yangi elementni qo‘shib qo‘yamiz. Solution Explorer dagi loyiha nomini ustiga sichqonchaning o‘ng tugmasini bosib, Add -> New Itemqismni tanlaymiz. Keyingi qadamda hosil qilingan ro‘yxatdan ADO.NET Entity Data Model ni tanlaymiz.
Ushbu modelimiz insonni tavsiflagani uchun unga User nomini beramiz va OK tugmasini bosamiz. Agar bizda Visual Studio ning SP2, SP3 paketlari o‘rnatilgan bo‘lsa, u quyidagi ko‘rinishga ega:
Ushbu oyna orqali to‘rtta variantdagi modelni hosil qilish mumkin. Ushbu ro‘yxatdan Empty EF Designer Modelni tanlashimiz va Finish tugmasini bosishimiz lozim. Natijada bizda modelni bo‘sh hosil qilish oynasi taqdim etiladi:
U shbu oynaga Toolbox (Panel Instrumentov) oynasidan Entity elementini olib joylashtiramiz. Endi bizda hosil qilinishi lozim bo‘lgan modelning sxemasi mavjud. Unda boshlang‘ich holda faqat bitta Id maydoni mavjud. Birinchi navbatda ob’ektga yangi nom beramiz. Boshlang‘ich holda u Entity1ga teng. Sxemani tanlab ekranning o‘ng qismida joylashgan loyihaning xususiyatlar qismiga o‘tamiz.
Ushbu oynada Name xususiyati qiymatini User ga o‘zgartiramiz. Bu qiymat biz yaratayogan model (ob’ekt) nomi hisoblanadi. Keyingi qadamlarda ushbu modelga mos bir nechta xususiyatlarni shakllantiramiz. Bizning misoldagi (User) modelimizda inson FIO va yoshi mavjud. Sxemani tanlab, sichqonchaning o‘ng tugmasini bosamiz. Hosil qilingan menyudan Add New -> Scalar Property ni tanlaymiz. Shundan so‘ng modelda yangi xususiyat hosil qilinadi.
Scalar Property orqali modelda oddiy (int, float, string) tipga mansub xususiyatlarni hosil qilish mumkin. Ikkita Name va Age xususiyatlarini shakllantiramiz. Ularning ikkalasi ham boshlang‘ich holda string tipiga mansub bo‘ladi. Ushbu xususiyatlarga mos tiplarni xususiyatlar oynasidan o‘zgartirishimiz mumkin. Barcha zaruriy amallarni bajarganimizdan so‘ng, quyidagi rasmda keltirilgan ob’ekt hosil qilinishi lozim:
Modelni shakllantirganimizdan so‘ng uni loyihaga Rebuildopsiyasi yangilab qo‘yamiz. Endi ushbu modelga mos tuzilmani DBda hosil qilish mumkin. Avvalo model kodini generatsiya qilamiz. Buning uchun model diagrammasida sichqonchaning o‘ng tugmasini bosib, Add Code Generation Item qismni tanlaymiz.
Natijada EF versiyasini tanlash taklif qilinadi:
Shundan so‘ng loyiha tuzilmasida User.tt tuguni hosil bo‘ladi. Ushbu tugunda model klassi User.csjoylashgan.
Shuningdek, ushbu tugunda ma’lumotlar konteksti fayli User.Context.cs ham mavjud. U quyidagi kodga ega:
namespace ModelFirstApp {
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class UserContainer : DbContext
{
public UserContainer()
: base("name=UserContainer")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{ throw new UnintentionalCodeFirstException(); }
public virtual DbSet UserSet { get; set; } } }
Endi ushbu modelga mos jadvallarni DBda hosil qilamiz. Buning uchun model diagrammasida sichqonchaning o‘ng tugmasini bosib, Generate Database from Model (Sgenerirovat bazu dannыx po modeli)ni tanlaymiz. Natijada bizga DBga ulanishni hosil qilish interfeysi taqdim etiladi:
Ushbu muloqot oynasidan New Connection (Novoe podklyuchenie)qismni tanlaymiz. So‘ngra bizga ulanishni hosil qilish va DBni yaratish amalgi o‘tiladi:
Ushbu muloqot oynasida server nomini va hosil qilinayotgan DB kiritish lozim. DB nomi sifatida usersdb kiritamiz. Server nomi sifatida usersdb ni kiritamiz. So‘ngra OK tugmasini bosamiz. Natijada Visual Studio modelga ulanish satri va DB nomini quyidagicha shakllantiradi:
Shundan so‘ng DB skripti hosil qilinadi:
So‘ngra Finishtugmasini bosamiz. Visual Studio da avtomatik tarzda User.edmx.sql skript fayli ochiladi. Oxirgi qadamda biz ushbu skriptni ishga tushirishimiz lozim. Buning uchun yuqori chap qismdagi Execute (Vыpolnit) tugmasini bosish lozim:
Natijada Visual Studio oynasida yuqoridagi amallarning omadli yoki omadsiz bajarilganligi haqidagi xabar chiqariladi. View->Other Windows dagi Database Explorer oynasi ochib, hozir hosil qilingan DBni ko‘rishimiz mumkin:
Yuqorida keltirilgan amallar modellar va DBni hosil qilish uchun zarur. Oxirgi qadamda ushbu hosil qilingan DB bilan ba’zi amallarni bajaramiz.
static void Main(string[] args)
{
using (UserContainer db = new UserContainer())
{
// dobavlenie эlementov
db.Users.Add(new User { Name = "Tom", Age = 45 });
db.Users.Add(new User { Name = "John", Age = 22 });
db.SaveChanges();
// poluchenie эlementov
var users = db.Users;
foreach (User u in users)
Console.WriteLine("{0}.{1} - {2}", u.Id, u.Name, u.Age);
}
Console.Read();
}