logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
bilgehanyildiz  
#1 Gönderildi : 26 Şubat 2015 Perşembe 09:56:50(UTC)
bilgehanyildiz

Sıralama: Member

Gruplar: Registered
Katılan: 25.02.2015(UTC)
Mesajlar: 12
Turkey
Konum: İstanbul

2 Mesajına Toplam 2 Kere Teşekkür Edildi.
Mapping işlemlerinden ve SessionFactory Create ettikten sonra artık örnek sorguları oluşturabilirsiniz

Nhibernate le alakalı örnek sorgular


1-)Select All

Kod:

var session = NHibernateHelper.OpenSession();
IList<Person> ab = session.CreateCriteria(typeof(Person)).List<Person>();



2-) ID vererek bir listedeki tek kaydı çekme

Kod:

var session = NHibernateHelper.OpenSession();
       PersonType pt=session.Load<PersonType>(1);



3-)Insert

Kod:

using (var session = NHibernateHelper.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var newPerson = new Person
                    {
                        Name = "abc4",
                        PersonTypeID = 3
                       
                    };
                    session.Save(newPerson);                    
                     transaction.Commit();

                }
            }





4-)Update

Kod:

using (var session = NHibernateHelper.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var newPerson = new Person
                    {
                        ID = 5,
                        Name = "abc88",
                        PersonTypeID = 3

                    };
      session.Update(newPerson);         
           transaction.Commit();
                }
            } 



5-)Insert or Update -- > SaveOrUpdate bu kodda eğer ID verirseniz güncelleme yapar,ID verilmez ise direkt olarak insert yapar.Ancak ID niz otomatik artansa ve o ID ait kayıt yoksa bu kod size hata fırlatır.

Kod:

  using (var session = NHibernateHelper.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var newPerson = new Person
                          {
                             // ID = 5,
                              Name = "abc78",
                              PersonTypeID = 3

                          };
                    session.SaveOrUpdate(newPerson);//session.Update(newPerson);
                    transaction.Commit();
                }
            } 




6-)Select Top sorgu sonucu maximum istenen kayıt sayısı

Kod:

var session = NHibernateHelper.OpenSession();
            ICriteria crit = session.CreateCriteria(typeof(Person));
            crit.SetMaxResults(1);
            IList mylist = crit.List();



7-)Distinct

Distinct Metod 1

Kod:

    var session = NHibernateHelper.OpenSession();
            IList mylist = session.CreateCriteria(typeof(Person)).SetProjection(Projections.Distinct(Projections.Property("Name"))).List();



Distinct Metod 2

Kod:


    ICriteria criteria 
                
                = session.CreateCriteria(typeof(Person)); 
            criteria.SetProjection(Projections.Distinct(Projections.ProjectionList().
                Add(Projections.Alias(Projections.Property("Name"), "Name")).
                Add(Projections.Alias(Projections.Property("PersonTypeID"), "PersonTypeID"))));

            criteria.SetResultTransformer(new NHibernate.Transform.AliasToBeanResultTransformer(typeof(Person)));
            IList people = criteria.List(); 



8-)Order By

Kod:

var session = NHibernateHelper.OpenSession();

  IList mylist = session.CreateCriteria(typeof(Person)).AddOrder(Order.Desc("ID")).List();




9-)Inner Join

Kod:

var session = NHibernateHelper.OpenSession();

            IList mylist = session.CreateCriteria(typeof(Person)).CreateAlias("PersonTypes", "PersonType", NHibernate.SqlCommand.JoinType.InnerJoin).List();





10-)Aggerate Fonksiyonlaravg,max,min vs...

Kod:

           var session = NHibernateHelper.OpenSession();
            IList mylist = session.CreateCriteria(typeof(Person)).SetProjection(Projections.Avg("ID")).List();





11-)Sorgularımıza where koşulu ekleme örnek Nhibernate ile in , eq ,like vs...

Expression kullanarak Filtre


Kod:

var session = NHibernateHelper.OpenSession();

            IList mylist = session.CreateCriteria(typeof(Person))
                /*In sorgusu*/
                //   .Add(Expression.In("ID", new int[] { 1, 2 })).List();

                /*Eşittir*/
           // .Add(Expression.Eq("ID", 1)).List();

           /*Like*/
           .Add(Expression.Like("Name","abx%")).List();

//Restriction kullanarak Filtre yapmak

var session = NHibernateHelper.OpenSession();

            IList mylist = session.CreateCriteria(typeof(Person))
                .Add(Restrictions.Eq("ID", 1)).List();



Not :Restriction ve Expression birbirlerine benzer ancak expression daha fazla depreciated metoddur.Tavsiye edilen Restriction kullanımıdır.

12-)CreateAlias ve CreateCriteria:İkisi arasında temelde fark yoktur.Tek fark CreateCriteriada daha fazla overload şansınız vardır.


Kod:

  IList mylist = session.CreateCriteria(typeof(Person)).CreateCriteria("PersonTypes", "PersonType", NHibernate.SqlCommand.JoinType.InnerJoin).List();
          
  IList mylist2 = session.CreateCriteria(typeof(Person)).CreateAlias("PersonTypes", "PersonType", NHibernate.SqlCommand.JoinType.InnerJoin).List();




13-)Nhibernate içine direkt olarak Sql kodu koyabilmek

Kod:

var session = NHibernateHelper.OpenSession();
session.CreateSQLQuery("select * from PersonType p").List();



14-)HSQL: Nhibernate criteria ile yapılabilen sorgulama hsql ile yapılabilir.Ancak nhibernate forumlarında hsql daha esnek olduğu yönündedir

Kod:

  var session = NHibernateHelper.OpenSession();

 int count= Convert.ToInt32(session.CreateQuery("select Count(*) from PersonType").UniqueResult()); /

//HSQL içine parametre koymak
 var blogs = session.CreateQuery("from PersonType p where p.ID = :ID")
            .SetParameter("ID", "1").List();

 IQuery query = session.CreateQuery("FROM PersonType");
 IList<PersonType> pers = query.List<PersonType>();




15-)Nhibernate de Lamda Expression ve Linq kullanım örneği

Linq kullanabilmek için Nhibernate.Linq namespaceini eklememiz gerekmektedir


Kod:

  var session = NHibernateHelper.OpenSession();
         
//Lamda Expression

  // PersonType p = session.QueryOver<PersonType>().Where(px => px.ID==1).SingleOrDefault();

 PersonType p2 = session.Query<PersonType>().Where(px => px.ID == 1).SingleOrDefault();




Linq Örneği

Kod:

var BuildQuery1=(from p in session.QueryOver<PersonType>() where p.ID==1 select p).List();

var BuildQuery = (from p in session.Query<PersonType>() where p.ID == 1 select p).ToList();



Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.