NHibernate - ORM

NHibernate'i gerçekten kullanmaya başlayabilmemiz için, üzerine inşa edildiği temeli anlamamız gerekiyor. NHibernate, nesne ilişkisel haritalama veya ORM fikrine dayanan bir kalıcılık teknolojisidir.

ORM nedir?

Nesne-İlişkisel Haritalama (ORM) bir programming techniquenesne yönelimli programlama dillerinde uyumsuz tip sistemler arasında veri dönüştürmek için. Başka bir deyişle, bir uygulamanın iş nesnelerini ilişkisel veritabanı tablolarıyla eşleme kavramıdır, böylece verilere bir uygulamanın nesne modeli aracılığıyla kolayca erişilebilir ve tamamen güncellenebilir.

  • İlişkisel veritabanlarının verileri depolamak için iyi bir araç sağladığını zaten bildiğiniz gibi, nesne tabanlı programlama ise karmaşık uygulamalar oluşturmak için iyi bir yaklaşımdır.

  • NHibernate ve ORM genel olarak önemsiz olmayan iş mantığı, etki alanı modeli ve bir çeşit veritabanı içeren uygulamalarla en çok ilgilidir.

  • ORM ile, nesneleri ilişkisel verilere kolayca dönüştürebilen ve tekrar geri alabilen bir çeviri katmanı oluşturmak çok kolaydır.

  • ORM kısaltması, nesne rol modellemesi anlamına da gelebilir ve bu terim, nesne / ilişkisel haritalama alakalı hale gelmeden önce icat edilmiştir.

  • Veritabanı modellemesinde kullanılan bilgi analizi için bir yöntemi açıklar.

Neden ORM?

ORM bir framework bu, nesne yönelimli dillerde bulunan nesnelerin dünyasını ilişkisel veritabanlarında bulunan ilişkisel tablolardaki satırlarla eşlemenizi sağlar

Bu kavramı anlamak için aşağıdaki diyagrama bir göz atalım.

  • Yukarıdaki diyagramda, tek bir çalışanla ilişkilendirilmiş her bir veri parçasını içeren sütunları içeren sağ tarafta Çalışan adlı bir tablomuz olduğunu görebilirsiniz.

  • Her çalışanı benzersiz şekilde tanımlayan bir Kimlik için bir sütunumuz var.

  • Çalışanın adı için bir sütun, katılım tarihi için başka bir sütun ve son olarak çalışanın yaşını belirten bir sütun.

  • Yeni bir çalışanı masalarda saklamak için bir kod yazmak istersek, bu o kadar kolay değildir.

  • Yukarıdaki diyagramda, Id, isim, katılım tarihi ve yaş için alanları olan bir çalışan nesnemiz olduğunu da görebilirsiniz.

  • ORM olmadan, bu nesneyi çalışan verilerini çalışan tablosuna ekleyecek birkaç farklı SQL ifadesine çevirmemiz gerekir.

  • Dolayısıyla, yukarıdaki senaryoyu gerçekleştirmek için SQL'i oluşturmak için kod yazmak o kadar da zor değil, ama biraz sıkıcı ve yanılması oldukça kolay.

  • NHibernate gibi bir ORM kullanarak, belirli sınıfların ilişkisel tablolarla nasıl eşleştirilmesi gerektiğini bildirebilir ve ORM veya NHibernate'in çalışan tablomuzdaki sorgu verilerini eklemek, güncellemek, silmek için SQL oluşturmanın kötü işiyle uğraşmasına izin verebiliriz.

  • Bu, kodumuzu nesneleri kullanmaya odaklanmamızı ve bu nesnelerin otomatik olarak ilişkisel tablolara dönüştürülmesini sağlar.

  • Yani gerçekten bir ORM'nin yaptığı şey, bizi nesneleri manuel olarak tablolara eşlemek zorunda kalmaktan kurtarmasıdır.