EF ilə modelin hazırlanması
EF ilə modelin hazırlanması
Lazım olanlar
Visual Studio 2012 və ya 2013
Əgər Visual Studio 2010 işlədirsinizsə Nuget yüklü olması lazımdır. (Nuget yüklədikdən sonra EF install etməyiniz lazımdır)
1. Proyektin yaradılması
Bu məqaləmi sadə Console Application üzərində göstərəcəm.
· Visual Studionu açırıq.
· File-> New->Project…
· Sol menyudan Windows seçirik sağda isə Console Application
· Proyektimizin adını EFModelFirst qeyd edirik.
2. Modelin hazırlanması
Biz model yaratmaq üçün Visual Studio-da Entity Framework Designer istifadə etməliyik.
· Project->Add->New Item
· Açılan pəncərdə sol siyahıdan Data sağda isə ADO.NET Entity Data Model seçirik.
· Modelimizə adını EFModel olaraq qeyd edirik Add düyməsini sıxırıq. Bu əməliyyatdan sonra Entity Data Model Wizard pəncərsi açılacaq.
· Açılan pəncərdə EmptyModel seçirik və Finish düyməsini sıxırıq. (Şəkil.1)
Şəkil. 1
Yuxarıdakı əməliyyatları tamamladıqdan sonra boş Entity Framework Designer açıldığını görəcəksiniz. İndi isə biz burda aşağıdakı əməliyyatları aparaq.
· Entity Data Model Designer üzərində sağ düyməni sıxmaqla Properties seçirik.
· Properties pəncərsindən Entity Container Name adın dəyişərək EFContext qeyd edirik.
Biz bu adla baza ilə əlaqə qurulmaq üçün istifadə edəcəyik, bu adla əlavə etmə, yeniləmə, yadda saxlama və.s kimi əməliyyatları yerinə yetiriləcək.
· Designer üzərində sağ düyməni sıxaraq Add New ->Entity seçirik.
· Açılan pəncərədə Entity Name bölməsin User (İstifadəçi) daxil edirik açar adına (Key Property) ID daxil edirik və Property Type Int32 seçib Ok düyməsini sıxırıq. (Şəkil. 2)
Şəkil. 2
· Yeni yaratdığımız User entity üzərində sağ düyməni sıxaraq Add New -> Scalar Property edərək yeni sütünlara ad veririk.
Scalar Property əlavə edərkən Properties (Özəlliklər) bölməsindən həmin sütünun tipini, boş olub olmamasını təyin edə bilərsiniz.
· Yuxarıdakılar təkrarlayaraq yeni Name, Bio adında sütünlar əlavə edək.
Bio sütununda Nullabe özəlliyini true edək. Bu bizə icazə verəcək ki biz Bio bölməsinə heçnə daxil etməsəkdə digər məlumatları bazada saxlayacaq.
· İndi isə yuxarıda öyrədiklərinizi tətbiq edərək Post adında obyekt key özəlliyinə PostID əlavə edin.
· İndi isə Scalar Property istifadə edərək Title, Content əlavə edin.
Yuxarıdakı əməliyyatları yerinə yetirdikdən sonra iki cədvəl arasında əlaqə (relationship) quraq.
· Designer üzərində sağ düyməni sıxara Add New -> Association… seçirik.
Bizim cədvəllər arasında birin çoxa əlaqəsi qurulaq bu nə deməkdir. Bir istifadəçinin 10 post-u ola bilər. Bu strukturda bir post-un 10 User-i ola bilməz deməkdir.
· Açılan pəncərdə User-də One seçirik, Post –da isə * (Many) seçirik və Add foreign key properties to ‘Post’ Entity (Xarici açarı Post Entity əlavə edilsin) əlavə olunmasını işarələyirik.(Şəkil. 3)
Şəkil. 3
Artıq məlumatların bazaya yazılması və oxunması üçün sadə bir modelimiz var.(Şəkil. 4)
Şəkil. 4
3. Bazanın yaradılması
Bizim modelə uyğun olaraq məlumatların saxlanılması üçün bir bazanın olması lazımdır. Entity Framwork bizə yalnız əməliyyatların aparılmasına icazə verir və heç bir məlumatı özündə saxlamır.
· Mən bu proyektimdə baza olar Microsoft SQL Server 2012 istifadə edəcəm.(siz başqa baza istifadə edə bilərsiniz)
İndi isə bazanı necə yaratmalıyıq ona baxaq.
· Dizayn sahəsi üzərində sağ düyməni sıxaraq Generate Database from Model… seçirik.
· New Connection seçirik. Açılan pəncərdə spesfik məlumatlar Serverin adını və bazanın adını daxil edirik. (məs: EFModelFirst) Burada yeni baza yaradacağımız üçün baza adı yazırıq, əgər siz hazır baza üzərində etmək istəyirsinizsə siyahıdan seçə bilərsiniz. İşlərimizi yekunlaşdırdıqdan sonra Ok düyməsini sıxırıq. Əgər yeni baza yaradırsınızsa qarşınıza çıxan pəncərəni Yes edirsiniz. Burada sizdən yeni baza yaratmağı təsdiqləməyinizi istəyir. (Şəkil. 5)
Şəkil. 5
· İrəli (Next) düyməsini sıxırıq. (Şəkil. 6)
Şəkil. 6
· Qarşınıza cədvəlləri yartmaq üçün sorğunun gəldiyini görəcəksiniz.
Finish düyməsini vurun. Əgər qarşınıza Unable to open Transact-SQL file in custom editor pəncərəsi gələrsə aşağıdakı keçidə daxil olaraq SQL Server Data Tools yeni versiyasını yükləməyiniz lazımdır. Keçid : https://msdn.microsoft.com/en-us/jj650015
· Açılan pəncərədə boş sahədə sağ düyməni sıxaraq Execute seçirik. (Şəkil. 7)
Şəkil. 7
· Açılan pəncərdə servərə qoşulma parametrlərin daxil edirik və nəti olaraq Command(s) completed successfully alırıqda deməli bazamızda cədvəllər yaradılıb. SQL açıb baxsanız EF-də olan cədvəlləri orada görəcəksiniz.
4. Bazadan məlumatın oxunması və yazılması
Artıq modelimiz imkan verir ki, biz bazada əlavə etmə və ya seçmə əmliyyatlarını aparaq. Console Application-da kiçik bir kod parçası ilə User cdəvəlinə məlumat yazaq və oxumağa calışaq.
· Proqram.cs faylında aşağıdakı kodları yazırıq.
using System; using System.Linq; namespace EFModelFirst { class Program { static void Main(string[] args) { using (var contex = new EFContext()) { Console.WriteLine("İstifadeçi adini daxil edin:"); //Consol-dan daxil edilən adı alırıq. var name = Console.ReadLine(); Console.WriteLine("----------------------------------------"); Console.WriteLine("İstifadeçi haqqinda melumat yaz:"); //Consol-dan daxil edilən haqqında məlumatı alırıq. var bio = Console.ReadLine(); //yeni user yaradırıq və daxil edilən məlumatları onlara mənimsədirik. var user = new User { Name = name, Bio = bio }; //Users yeni daxil edilən məlumatı əlavə edirk. contex.Users.Add(user); //Daxil edilən məlumatları yadda saxlayırıq. contex.SaveChanges(); Console.WriteLine("----------------------------------------"); //Bura LİNQ sorğudan istifadə edərək istifadəçilərin yeni bir dəyişkənə əlavə edirk. //User-də olan məlumatları seçərək İD azalmasına görə sıralayırıq. var query = from a in contex.Users orderby a.ID descending select a; // Seçilən məlumatın içindən sətrləri foreach ilə oxuyuruq. foreach (var item in query) { Console.WriteLine("----------------------------------------"); //Bazadan gələn Name ekrana yazdırırıq. Console.WriteLine(item.Name); //Bazadan gələn Bio ekrana yazdırırıq. Console.WriteLine(item.Bio); } //Ekranın bağlanması ReadKey ilə müvəqqəti saxlayırıq. Console.ReadKey(); } } } }
· Consol pəncərəsində məlumatın daxil edilməsi və oxunması.(Şəkil. 8)
Şəkil. 8
Bununlada məqaləmizin sonuna gəldik.
Oxuduğunuz və faydalandığınız üçün çox sağolun.
Hörmətlə,
Elvin Yusifli