|
Dasturiy injiniring (EntityFramework 6)
|
bet | 7/53 | Sana | 30.11.2023 | Hajmi | 1,39 Mb. | | #108476 |
Bog'liq Dasturiy injiniringEntity Framework funksionalligini klasslar tashkil qiladi. Ushbu klasslar System.Data.Entity nomlar fazosida joylashgan. Ushbu nomlar fazosidan eng ko’p ishlatiladigan klasslar quyidagilar:
DbContext: DB bilan aloqani tashkil qilish uchun zarur bo’lgan ma’lumotlar kontekstini ifodalaydi.
DbModelBuilder: C# tilidagi klasslar bilan DB dagi elementlarni moslashtiradi.
DbSet/DbSet: DBda saqlanayotgan elementlar to’plamini ifodalaydi.
DB bilan Entity Framework orqali ishlayotgan ixtiyoriy dasturda bizga ma’lumotlar konteksti (DbContext dan vorislangan) va DbSet ma’lumotlar to’plami (DB jadvallari bilan aloqa uchun) kerak bo’ladi. Bizning misolda ma’lumotlar konteksti sifatida UserContext klassidan foydalanamiz.
Ushbu klass konstruktorida bosh klass konstruktori chaqiriladi. Ushbu konstruktorda "DbConnection" satri parameter sifatida uzatilgan bo’lib, bu qiymat DBga ulanishni ifodalaydi. Biz konstruktordan foydalanmasak, ulanish satri nomi ma’lumotlar konteksti bilan bir xil nomda bo’lishi shart.
Shuningdek klassda bitta Users xususiyati aniqlangan bo’lib, unda User ob’ektlar to’plami saqlanadi. Ushbu kalssda ma’lumotlar konteksti to’plami uchun DbSet klassidan foydalanilgan. Ushbu xususiyat orqali DBdagi User jadvali bilan aloqa o’rnatilinadi.
Keyingi qadamda DBga ulanishni hosil qilishimiz lozim. Buning uchun loyihadagi konfiguratsiya faylidan foydalanamiz. Oddiy loyihalarda konfiguratsiya fayli sifatida - App.config (bizning hol uchun), veb-loyihalrda esa - web.config faylidan foydalaniladi. Entity Framework loyihaga qo’shilgach App.config fayli quyidagi mazmunga ega:
yopiluvchi tegdan so’ng, quyidagi elementni qo’shib qo’yamiz:
providerName="System.Data.SqlClient"/>
Loyihadagi barcha ulanishlar connectionStrings sektsiyasida aniqlanishi lozim va har bir ulanish add elementi orqali shakllantiriladi. UserContext klass konstruktorlarida ulanish satri sifatida “DbConnection”dan foydalanilgan. Shuning uchun ulanish satridagi name atributi qiymati name="DBConnection"ga teng.
Ulanish satridagi ulanish satri connectionString atributi orqali aniqlanadi. Bizning loyihada ulanish satrida userstore.mdf DB bilan ishlash ko’rsatilgan. Endi loyihamizdagi Program.cs faylida quyidagi o’zgartirishlarni amalga oshiramiz:
using System;
namespace FirstEF6App
{
class Program
{
static void Main(string[] args)
{
using (UserContext db = new UserContext())
{
// Ikkita User ob’ektini hosil qilamiz
User user1 = new User { Name = "Ahmad", Age = 33 };
User user2 = new User { Name = "Nodir", Age = 26 };
// Ularni DBga qo’shamiz
db.Users.Add(user1);
db.Users.Add(user2);
db.SaveChanges();
Console.WriteLine("Ob’ektlar DBga saqlanadi");
// DBдан объектларни оламиз ва консолга чикарамиз
var users = db.Users;
Console.WriteLine("Ob’ektlar ro’yxati:");
foreach (User u in users)
{
Console.WriteLine("{0}.{1} - {2}", u.Id, u.Name, u.Age);
}
}
Console.Read();
}
}
}
|
| |