Fluent NHibernate Mapping - Tablo Oluşturma


21 Aralık 2013 Hikmet Okumuş Fluent NHibernate

Daha önce yazmış olduğum Fluent NHibernate makalelerinde Fluent NHibernate kullanarak database bağlantısının nasıl yapılacağını anlatmıştım. Bu makalede ise bağlantı sonrasında kullanacağımız tablo objelerimizin oluşturulması hakkında bilgi aktarıcam. Öncelikle tablo alanlarımızı bir class içerisinde oluşturalım.
    public class Personel
    {
        public virtual int Id { get; set; }
        public virtual string Ad { get; set; }
        public virtual string Soyad { get; set; }
        public virtual int Yas { get; set; }
    }
Dikkat edilmesi gereken önemli nokta tüm propery tanımlamalarının virtual olarak yapılmış olmasıdır. Çünkü Fluent NHibernate alanlara ek parametre eklemektedir. Bunun içinde alanların virtual yani ezilebilir olması gerekmektedir. Eğer virtual tanımlaması yapılmazsa hata alırsınız. Tanımlamış olduğumuz sınıfı Fluent NHibernate içerisinde kullanabilmek için Map Class oluşturmamız gerekmektedir. Map Class oluşturmak için ClassMap sınıfından kalıtım yapılması gerekmektedir. ClassMap sınıfını kullanabilmek için;

FluentNHibernate.Mapping

isim alanını eklememiz gerekmektedir.
    public class PersonelMap : ClassMap< Personel>
    {
        public PersonelMap()
        {
            Table("Personeller");
            Id(x => x.Id);
            Map(x => x.Ad);
            Map(x => x.Soyad);
            Map(x => x.Yas);
        }
    }
Yukarıdaki gibi map sınıfımızı oluşturduk. Map sınıfının constructor metodunda Fluent NHibernate' e propery' lerin özellikleri belirtilmektedir. Örnekte database tarafında tablo isminin ne olacağını, id alanı bilgisini ve diğer alanları tanımlamış olduk. Burada yapabileceğimiz tanımlamalar daha fazladır. Örneğin şema ismi belirtebiliriz, referans alan belirtebiliriz, ilişkili bir alan belirtebiliriz, string bir alana uzunluk belirtebiliriz, bir alan boş geçilemez gibi ve daha fazla özellik belirtebiliriz. Bizim örneğimizde temel seviyede özellikleri belirlemeye çalıştık. İhtiyaca göre diğer tanımlamalar yapılabilmektedir.
Fluent NHibernate ile Mapping oluşturma işlemi bu şekilde yapılmaktadır.

Başarılar dilerim.



Yorum Ekle