24 Ağustos 2010 Salı

Object Relational Mapping(ORM) ve Entity Kavrami

C# 3.0 yeniliklerinden bahsederken, tum bu yeniliklerin LINQ'nun alt yapisini olusturdugunu, tum yeniliklerin amacinin LINQ'yu daha yaygin bir bicimde kullanmak oldugunu soylemistik. Yavas yavas LINQ teknolojisine alismamizda yarar olacaktir sanirim, cunku tam anlamiyla ogrenildigi zaman gercekten buyuk kolaylik getiriyor kodlamaya. Kisa sure icerisinde cok yaygin bicimde kullanilacak bir teknoloji olacagindan suphe yok. Simdi LINQ to SQL konusuna gecmeden kisa kisa Object Relational Mapping ile ilgili birkac tanimlama yapacagim. Kabataslak konusmak gerekirse, iki farkli ORM araci vardir. Bunlar;

  • LINQ to SQL (basic)
  • Entity Framework (advanced)
tür.
Aralarindaki fark parantez iclerinde de belirtildigi gibi biri basic'tir digeri advanced. Bunun nedeni de LINQ to SQL'in, C# developerlari tarafindan, Entity Framework'un de Ado.Net'ciler tarafindan kodlanmasidir.

Iki farkli arac dedik ama aslinda ikisinin de yaptigi is ayni. Sonucta ikisi de ORM aracidir. Peki nedir bu ORM? Isminden de belli olacagi uzere, iliskisel nesne eslestirimi. Database uzerinden ornek verirsek, sinif ile tabloyu, kolon ile property'i ve satir ile nesneyi eslestirmektir ORM. Bu eslestirmenin sonucunda da Code Generatorler Sql'e bakip tablolara gore sinif, property .. vs. kendisi bizim yerimize otomatik olarak yaratiyor.

Bir sonraki makalede daha ayrintili uzerinde duracagiz ama LINQ to SQL nasil kullanacagiz, hangi adimlari uygulayacagiz kisaca madde madde uzerinde durmak gerekirse;
  • Erişilmek istenen tabloya ait Entity sınıfı oluşturulur.
  • Connection açmak, command çalıştırmak gibi işlerden sorumlu olan DataContext nesnesi oluşturulur.
  • DataContext nesnemiz kullanılarak ilgili tablodan data çekilebilir.
Kisaca Entity kavramindan da bahsetmek gerekirse, veritabanındaki tabloya karşılık oluşturulmuş her bir sınıfa Entity sınıfı denmektedir. Bir entity sınıfının nesnesini Ram'e çıkarttığımızda, cikarttigimiz bu nesneye de entity denmektedir ayni zamanda. Çok sık duyacagımız kavramlardan biri de Entity yuklemek olacak. Bu da, satirin bilgilerini tutan bir entity nesnesini RAM'e cikartmaktir anlamina gelir.


0 yorum: