11 Ocak 2012 Çarşamba

NHibernate

NHibernate java tabanlı Hibernate kütüphanesinin .Net için uyarlanmış halidir. Hibernate kullanım şekli muhafaza edilmeye çalışılmışsa da .Net ortamına uygun diğer bazı geliştirilmeler de yapılmıştır.

NHibernate.Linq
Bazi örnekleri burada bulabilirsiniz. Linq ile nasıl QueryProvider yazılacağını da burada bulabilirsiniz.

//using NHibernate.Linq
var linq = (from product in session.Query<Product>()
            where product.Category.Id == 2
            orderby product.Id
            select product)
    .Skip(10)
    .Take(10);
var list4 = linq.ToList();
Bir diğer örneği ise burada bulabilirsiniz.
var result = session.Query<Fruit>()
                .Where(f => fruitIds.Contains(f.Id))

                .ToList();
Burada dikkat edilmesi gereken nokta. NHibernate.Linq içinde  nesnelerin sadece property'lerine erişmek mümkün. Metodlarını çağırmak mümkün değil çünkü metodları SQL'e çevirmenin imkanı yok !

NHibernate Validator

NHibernate ile gelen Validator kütüphanesi aynı Java adaşında olduğu gibi çalışıyor. Sınıfın içinde tanımlanan anotasyonlar üretilen DDL'e de etki edebiliyor. Bu durumu aşağıdaki cümle güzel açıklamış.

Out of the box, Hibernate Annotations (as of Hibernate 3.5.x) will translate the constraints you have defined for your entities into mapping metadata. For example, if a property of your entity is annotated @NotNull, its columns will be declared as not null in the DDL schema generated by Hibernate.
Hibernate ile gelen validator açıklamaları bu tabloda da gösterilmiş. NHibernate ile gelen validator açıklamaları da bu tabloda gösterilmiş. Aralarında küçük farklar olsa bile birbirleriyle uyumlu sayılırlar.


Hiç yorum yok:

Yorum Gönder