Ana içeriğe atla

ASP.NET MVC ile Entity Framewok Kullanımı 1

Merhaba Arkadaşlar,

Bu yazımızda ASP.NET MVC Web Programlamada çok fazla kullanılan ve çok popüler bir paket olan Entity Framework paketini inceleyeceğiz. Entity Framework paketi, .NET altyapısı ile veritabanı programlama yapanlar için kullanımı kolay ve çok esnek bir pakettir. Entity Framework ile veritabanı üzerinde SELECT,INSERT,DELETE ve UPDATE gibi işlemleri yapabiliriz. Bunun yanında veritabanı üzerinde oluşturulmuş olan stored procedureleri çalıştırabiliriz. Peki programcılar neden Entity Framework tercih ediyor ? Performans, işlem çeşitliliği ve kodun okunurluğunun artması gibi sebeplerden ötürü tercih edilmektedir.



Entity Framework paketini kullanmadan önce bu paketi projemize yüklemeliyiz. Bunun için Nuget Manager kullanarak yükleme işlemini yapmamız gerekiyor.  Projemizin seçeneneklerinde Manage Nuget Packages seçeneği ile paket yöneticisini açıyoruz(Resim 1). Daha sonrasında, Entity Framework kelimesini aratıyoruz ve install ediyoruz(Resim 2).

Resim 1



Resim 2

Artık Entity Framework paketini kullanmaya hazırız. İlk aşama olarak,hazır oluşturulmuş bir veritabanına bağlanalım ve buradaki bir tablodan kayıtları çekelim. Veritabanına bağlanmak için projemizde bulunan Models klasörü altına yeni bir ADO.NET Entity Model eklememiz gerekiyor.(Resim 3). Model eklemek istediğimizde EF Designer from Database seçeneğini seçip(Resim 4) Yeni bir veritabanı bağlantısı oluşturuyoruz(Resim 5).

Resim 3


Resim 4


Resim 5


 Bağlantı bilgilerinde, Server Name kısmına veritabanımızın bulunduğu server ismini yazıyoruz. Authentication bölümüne ise bağlantı yolumuzu seçiyoruz. SQL Server veritabanına hem Windows Yetkisi ile hem de SQL Server Yetkisi ile bağlanabiliriz. Bu örnekte Windows yetkisi bağlanıyoruz.Veritabanı ismine ise bağlanmak istediğimiz veritabanın ismini yazarak işlemleri tamamlıyoruz.(Resim 6)

Resim 6



Daha sonraki adımda,veritabanına başarılı bir şekilde bağlantı sağlanırsa, Entity Framework bize hangi veritabanı nesnelerini uygulama katmanında kullanmak istediğimizi sorar. Burada tablolar,veritabanında kullanılan view'lar ve stored prosedürlerin hepsini ya da içlerinden sadece istediklerimizi seçmekte özgürüz. Ben bu örnekte sadece 2 adet tablo yükledim ve View ve Stored Procedure yüklemedim.(Resim 7)

NOT : Siz istediğiniz tüm nesneleri de yükleyebilirsiniz. Demo olduğu için temsili bir kısmını yükledim sadece.

Resim 7


Veritabanı bağlantısını ve istediğimiz nesneleri uygulama katmanına çektikten sonra örnek olması adına projemizde bulunan HomeController altına Çalışanları listeleyen bir ActionResult koydum. ActionResult içindeki kodlar aşağıdaki gibidir.




1
2
3
4
5
6
7
  public ActionResult CalisanListele()
        {
            AdventureWorks2016Entities db = new AdventureWorks2016Entities();
            List<Employee> CalisanlarListesi = new List<Employee>();
            CalisanlarListesi = db.Employees.ToList();
            return View(CalisanlarListesi);
        }


 AdventureWorks2016Entities db = new AdventureWorks2016Entities();
Bu kod bloğu ile bağlantısını yaptığımız veritabanından bir instance oluşturuyoruz.
 List<Employee> CalisanlarListesi = new List<Employee>();
Veritabanı içindeki Employee tablosunun kayıtlarını içeren Employee cinsinden bir liste oluşturuyoruz.
 CalisanlarListesi = db.Employees.ToList();
İlk adımda oluşturduğumuz "db" ismindeki veritabanı instance'ını çağırarak içindeki Employee kayıtlarını liste şeklinde CalisanlarListesi'ne kayıt ediyoruz.
return View(CalisanlarListesi);
Oluşturduğumuz view'a listelemesi için data olarak CalisanlarListesini gönderiyoruz.


Kodlamış olduğumuz ActionResult'ın bize çalışanları listelemesi için bir tane view oluşturmamız gerekiyor. Employee modelini baz alan Liste şablounlu bir view oluşturdum.

Resim 8





CalisanListele ActionResult'ını çalıştırdığmızda ise aşağıdaki gibi liste şeklinde personellere erişiyor olacağız.(Resim 9)

Resim 9








Yorumlar

Bu blogdaki popüler yayınlar

Powershell ile Web Tarayıcı Cookie Temizliği

Web tarayıcıların ürettiği cookie ve minik boyuttaki veriler uzun bi süre temizlenmediği durumda yüksek boyutlara ulaşabilir ve bilgisayarımızın performansını kötü etkileyebilir. Bu tarz cookie temizliği ve yönetimi işlemlerinin periyodik olarak yapılması bilgisayarımızın performansı arttıracak ve disk alanı üzerinde bize bir miktarda olsa yer kazandıracaktır. Bu tarz işlemleri yapan programlar internette mevcut ancak bazılarının güvenilirliği tartışılır ve cookie temizliği işlemini periyodik olarak yapmıyor. Powershell ile arkaplan işlerini ve browser yönetimi özelliklerini kullanarak cookie yönetimini ve temizliğini periyodik olarak gerçekleştirmek mümkün. Bu sayede hem güvenlik konusunda hem de işlevsellik konusunda kullanıcı dostu bir modül yapmak mümkündür. Aşağıdaki powershell komutları browser üzerindeki cookie temizliği işlemini yapmaktadır. Not: Cookie Temizleme işlemini yapan fonksiyon aşağıdaki github projesinden alıntıdır. Bu scriptin üzerine birkaç ekl...

ASP.NET MVC ile Entity Framework Kullanımı 3(Sum-Average-Top)

Merhaba Arkadaşlar, ASP.NET MVC ile Entity Framework kullanımı yazılarımıza devam ediyoruz. Geçen yazılarımızda Select ve Insert işlemlerini tanıtmıştık kısaca. Bu yazımızda ise,Entity Framework ile daha profesyonel ve advanced select operasyonları üzerinde çalışmalar yapacağız. Veritabanı üzerinde,iş biriminin istekleri basit select sorgusu ile olmayabiliyor. Bizden çekilen verilerin toplanması,ortalanmasının alınması ve ilk "x" kayıdın çekilmesini talep edebiliyorlar. Bu nedenle bu hafta Entity Framework ile Select operasyonlarında gruplama,sıralama ve top konularını inceleyeceğiz. Entity Framework İle Sum Kullanımı Bazen elde edilen verilerden toplam operasyonu gerekmektedir. Bu tarz durumlarda,SUM özelliğini kullanmaktayız. İlk etapta, GetTotalRate isminde integer değer geri veren bir fonksiyon oluşturduk. Daha sonrasında ise ToplamRate isimli değişkenimize EmployeePayHistories tablosunda Rate alanlarının toplam değerini hesaplatıp sonucu atadık. En s...

Powershell ile Windows Restart Kontrolü

Powershell ile Windows üzerinde birçok işlemi daha kolay ve daha kısa sürede yapabilmek mümkündür.  Microsoft, PowerShell'i "görev tabanlı .NET Framework üzerine inşa edilmiş komut satırı shell'i ve komut dizesi olarak tanımlıyor. Powershell'in avantajlarını ise aşağıdaki maddeler ile özetlemek mümkündür. Powershell hem command-line olarak hemde bir scripting language olarak çalışmaktadır. Powershell baş döndürücü sayıda teknolojiyle etkileşim kurabilir.(.NET Framework, the Registry, COM, WMI, ADSI. Exchange, Sharepoint, Systems Center, Hyper-V, SQL.  VMware vCenter , Cisco UCS, Citrix XenApp and XenDesktop. REST APIs, XML, CSV, JSON ...) Powershell nesne tabanlıdır.(Object-Oriented) Bilgisayarımızda ya da sunucumuzda zaman zaman yüklediğimiz programlar ve patchler sonucunda restart işlemi gerekebilir ve bu restart işlemi gerekip gerekmediğini tespit etmek için Powersehell kullanılabilir.  Aynı anda 100 sunucuda bunu öğre...