10-Amaliy mashg‘ulot: CodeFirst orqali berilganlar bazasi bilan ishlash. ModelFirst orqali berilganlar bazasi bilan ishlash. DatabaseFirst orqali berilganlar bazasi bilan ishlash.
CodeFirst orqali berilganlar bazasi bilan ishlash.
Entity Framework asosida yaratilgan birinchi loyiha. Code First yondashuvchi Entity Framework bilan ishni boshlashdan avval, VS 2013 da birinchi loyihani yaratishimiz lozim. Buning uchun VS 2013 muhitini ishga tushirib, loyiha turidan Console Applicationni tanlaymiz:
So‘ngra, loyihamizga ma’lumotlarni ifodalovchi yangi klassni qo‘shamiz. Biz yaratayotgan loyiha dastur foydalanuvchilari bilan bog‘liq bo‘lsin. Shuning uchun loyihamizga yangi User klassini hosil qilamiz:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Ushbu klass bir nechta avto xususiyatlarni o‘zida saqlaydi. Har bir xususiyat DBdagi jadvalning muayyan ustuniga mos tarzda shakllantirilishi lozim.
Entity Framework da Code First yondashuv asosida ish ko‘rilganda, DB jadvalining birlamchi kalitini ko‘rsatishni talab qiladi. DB generatsiya qilinayotganda Entity Framework birlamchi kalit sifatida Id yoki [Klass_nomi]Id kabi formatdagi xususiyatlarni tushunadi. Bizning misolda ushbu turdagi xususiyat Id hisoblanadi. Agar biz kalitni boshqa ustun deb ko‘rsatmoqchi bo‘lsak, C# tilida qo‘shimcha mantiqni tashkil qilishimiz lozim.
Endi DB bilan ishlash uchun ma’lumotlar kontekstidan foydalanamiz. Ma’lumotlar konteksti DB va loyiha klasslari o‘rtasidagi vositachi hisoblanadi. Bizning loyihada Entity Framework uchun biblioteka qo‘shib qo‘yilmagan. Entity Framework bibliotekasini qo‘shish uchun loyiha nomiga sichqonchaning o‘ng tugmasini bosib, menyudan Manage NuGet Packages...qismni tanlash lozim:
So‘ngra, hosil qilingan muloqot oynasidan NuGet-paketlari bilan ishlash uchun "Entity" kalit so‘zini izlash qismiga kiritib, hosil qilingan ro‘yxatdan Entity Framework ni tanlaymiz va o‘rnatamiz:
Loyihamizda Entity Framework paketi o‘rnatilgach, yangi UserContext klassini hosil qilamiz:
using System;
using System.Collections.Generic;
using System.Data.Entity;
namespace FirstEF6App
{
class UserContext : DbContext
{
public UserContext()
: base("DbConnection")
{ }
public DbSet Users { get; set; }
}
}