13 Ocak 2009 Salı

ORM: Ado.Net Entity Framework & LinqToSql?

LinqToSql ORM çözümünü sqlmetal.exe'nin yayınlanmasından bu yana kullandığımı söyleyebilirim. Hakeza Ado.Net Entity Framework ile de birkaç proje yaptım. Çalışma mantıklarını uzun uzun anlatmak isterdim(Serialization sorunları, implement henüz edilen-edilmeyen metodlar vs.) fakat yeni başlayanlar için kısaca günlüğe not düşmeyi yeterli buluyorum.

Linq2Sql'i seçenlerin çoğu ilk çıkmış olmasının yanı sıra tablodaki tüm kolonların oluşan entity'de scalar property olarak karşılığı bulunmasını savunuyorlar. Malum alışmış insanlar en büyük finansal projelerde bile referans alanlarının karşılıklı atanması(YY.xxId = XX.ID). Gerçi ado.net EF'yi kullananlardan gördüklerim de burada EntityKey'lerin atamasını yapıyor :)  

Efendim fazla uzatmayayım kısaca sade de geleyim benim önerim bunca deneyimimden sonra Ado.Net EF. Buna artı olarak Ado.Net takım blogunda da ekibin Ado.Net entity framework'a yönlendiğini görebiliriz. Validation için Enterprise Library Validation Block'a edmgen kullanarak kolayca adapte edebilirsiniz.

Yalnız bu karardan önce ilk yapılması gereken MUTLAKA ama MUTLAKA Linq mantığını çözebilmek yoksa kullandığınız EF'yi daha önceden piyasada olan onlarca entity generator yapısına benzetip yanılırsınız. İnternette henüz doğru düzgün linq örnekleri yok fakat F# diline 1 ay zaman ayırırsanız ne demek istediğim daha rahat anlaşılacaktır.