Fluent NHibernate İle Select Kullanımı - Veri Getirmek


26 Ocak 2014 Hikmet Okumuş Fluent NHibernate

Daha önceki Fluent NHibernate makalelerinde database' e nasıl bağlantı kurulacağı ve tablo objelerinin nasıl oluşturulacağı ile ilgili çalışma yapmıştık. Şimdi database üzerinde bulunan veriye nasıl ulaşabiliriz bu konu ile ilgili örnekleme yapacağız. Örnekte kullanmış olduğum tablo objesi aşağıdaki gibidir.
    public class Personel
    {
        public virtual int PersonelId { get; set; }
        public virtual string Ad { get; set; }
        public virtual string Soyad { get; set; }
        public virtual PersonelDurum Durum { get; set; }
    }

    public class PersonelMap : ClassMap< Personel>
    {
        public PersonelMap()
        {
            Table("Personeller");
            Id(x => x.PersonelId);
            Map(x => x.Ad);
            Map(x=> x.Soyad );
            Map(x => x.Durum).CustomType(typeof(PersonelDurum));
        }
    }

    public enum PersonelDurum : byte
    {   
        Ayrildi = 0,
        Calisiyor = 1        
    }
Yukarıda bulunan objeye karşılık gelen tablonun içeriği aşağıdaki gibidir.

www.hikmetokumus.com

Şimdi Fluent NHibernate ile select çekelim.
            using (var session = NHibernateHelper.OpenSession())
            {
                var data = session.QueryOver< Personel>().List();
            }
Bu şekilde yazılan bir sorgu ile tüm kayıtlar listelenmektedir.

www.hikmetokumus.com

Eğer tüm kayıtların listelenmesini istemiyorsak aşağıdaki gibi kriter belirtebiliriz.
            using (var session = NHibernateHelper.OpenSession())
            {
                var data = session.QueryOver< Personel>()
                    .Where(x => x.Durum == PersonelDurum.Calisiyor)
                    .List();
            }

www.hikmetokumus.com

Personel durumu ile birlikte Ad alanınada bir kriter yazalım. Sadece adı Ali olan kayıtlar listelensin.
            using (var session = NHibernateHelper.OpenSession())
            {
                var data = session.QueryOver< Personel>()
                    .Where(x => x.Durum == PersonelDurum.Calisiyor)
                    .And(x => x.Ad == "Ali")
                    .List();
            }

www.hikmetokumus.com

Örneklerde basit sorgu kriterleri kullandım. Yapılacak işleme göre istenilen sayıda kriter kullanabilirsiniz. Basit anlamda select işlemleri bu şekilde yapılmaktadır. İhtiyaca göre daha ileri seviye işlemlerin yapılması mümkündür.

Başarılar dilerim.



Kullanıcı Yorumları

hikmet okumuş makale yorum
Burak Can Yurdacan
19.07.2017 16:29:32

Hocam merhabalar,

Makaleniz için teşekkür ederim faydalı bir anlatım olmuş. Console uygulaması yaptığımızı farz edelim. Debug'ta listeleme işlemi başarılı görünüyor ancak console ekranına nasıl listeleriz bir fikriniz var mıdır ?

hikmet okumuş makale yorum
Hikmet Okumuş
20.07.2017 00:09:56

Merhaba Burak Can Yurdacan, Console ekranına yazdırmak için "Console.WriteLine" metodunu kullanabilirsin. Aşağıda basit bir örnek bulunmaktadır. Sana kullanım hakkında fikir verecektir. using (var session = NHibernateHelper.OpenSession()) { var data = session.QueryOver<Personel>() .Where(x => x.Durum == PersonelDurum.Calisiyor) .And(x => x.Ad == "Ali") .List(); foreach (var item in data) { Console.WriteLine(item.Ad); } }



Yorum Ekle