Dapper

Ro'zimurod Abdunazarov

Dapper - bu SQL so'rovlari natijalarini C# sinflari bilan taqqoslaydigan almashinuv vositasi. Ishlash tizimi EntityFreamwork ga ham o’xshaydi,ammo undan tezroq ishlaydi. Hammamiz biladigan https://stackoverflow.com/ saytining qidiruv tizimi ham Dapper yordamida tuzilgan.

Shuningdek Dapper oldingi Ado.Net ning avlodi hisoblanadi.Shuning uchun ham tuzilma Ado.Net bilan juda o'xshash.

Endi amaliyot bilan shug’ullansak, Man Dapper bilan ishlash ko’nikmasini shakllantirish uchun,kompyuterni uncha qiynamaydigan bir nechta dasturlarni o’rnatib olaman.VsCode, MsSqlLocalDb, Dotnet lar bo’lsa bo’ldi.

Loyihaga yangi kutubxonalarni qo’shamiz:

Yangi ma'lumotlar bazasi qurib olamiz:

Yangi jadval quramiz. (Bu kodlar faqat MsSql uchun)

Jadvalni to’ldiramiz. (Bu kodlar faqat MsSql uchun)

Keyin umumiy malumotlar ombori quyidagicha bo’ladi:

Bu malumotlar asosida yangi model tuzib olamiz.

Keyingi bosqichda malumotlar bazasidan malumot olib kelish uchun Dapper ORM(Object Relation Mapper) dan foydalanamiz.

Birinchi IUserRepository interfeysini qurib olamiz. Endi UserRepository ni yozamiz. Kodlar asosan SQL ni o’zidagi Query da yoziladi, shuning uchun ham Dapper EfCore ga qaraganda tezroq ishlaydi.

1] Umumiy barcha User larni olib kelish uchun quyidagicha qilamiz.

Shu yerda bir narsaga e’tibor bering: SELECT * FROM People umumiy malumotlarni olib keldi. Query() buyrug'i buni object ga aylantirayapti.

2] Aynan qaysidir Userni olib kelish uchun (SQL da SELECT buyruqi yordamida)

Bu yerda QuerySingleOrDefault() metodi bitta id parametrini Id ga tenglayapti.

3] Yangi User qo’shish uchun (SQL da INSERT buyruqi yordamida)

4] Malum bir Userni o’zgartirish uchun (SQL da UPDATE buyruqi yordamida)

5] Malum bir Userni o’chirish uchun (SQL da DELETE buyruqi yordamida)

6] Ma’lum bir prodsedureni chaqirish uchun (SQL da EXEC buyruqi yordamida) Eng avvalo string DateTime ni Full qilib beradigan bitta prodsedura yaratib olaman:

a] CommandType.Text bilan

b] CommandType.StoredProcedure bilan


Demak yana bitta takrorlash qilib olamiz, boshi esingizdan chiqib ketgan bo’lsa:

a) Sql bilan bog’lanish hosil qilish

b) Sql kodlarini shunchaki yozish

c) Yangi model tuzish (biz qaytarayotgan malumot obyekt ko’rinishida chiroyli bo’lishi uchun)

d) Dapper bilan ko’nikma: Agar nimanidir bazada yangilamoqchi bo’lsangiz Execute()

e) Dapper bilan ko’nikma: Agar nimanidir bazadan olmoqchi bo’lsangiz Query()

f) Dapper bilan ko’nikma: Agar bazadan kelayotgan malumot bir qator bo’lsa QuerySingleOrDefault()

g) Dapper bilan ko’nikma: Agar bazadan bitta prodsedureni ishlamoqchi bo’lsangiz CommandType.StoredProcedure yoki CommandType.Text bilan qilamiz.

Proyektning github dagi kodlarini https://github.com/Ruzimurod2003/dapper-mvc ga joylab qo’ydim. Agar nimanidir o’rgangan bo’lsangiz bundan juda ham xursandman.

Last updated

Was this helpful?