11 Mayıs 2018 Cuma

NHibernate OrderBy Random QueryOver Desteği

NHibernate OrderBy Random QueryOver Desteği ve ayrıca nhibernate için FreeTextExpression makalemizi okuyunuz.


NHibernate QueryOver Desteği


Veritabanından rasgele kayıtlar alabilmek için işimize yarayabilecek bir destek. Bu yüzden bu uzantıyı NHibernate QueryOver api ile kullanmak avantaj sağlayabilir.Microsoft SQL Server ile birlikte kullanacağım için kodlarımı bu şekilde revize ettim. Sql server ile kullanımında farklı teknojilerle ile birleştirmek ve sorgumuzu çok daha hızlı hale getirebilmek için bazı prosedürleri kullanabiliriz. Bunun dışında kullandığımız sorgunun index yapısının iyi olması gerekiyor. Diğer bir konu ise Sql server dışındaki diğer tüm veritabanı sistemlerine kolaylıkla uyarlanabilir olması.


 


Nasıl Çalışır ?


public static class NHibernateExtensions

public static IQueryOver<TRoot, TSubType> OrderByRandom<TRoot, TSubType>(this IQueryOver<TRoot, TSubType> query)

query.UnderlyingCriteria.AddOrder(new RandomOrder());
return query;



public class RandomOrder : Order

public RandomOrder() : base("", true)



public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery)

return new SqlString("newid()");


 



NHibernate OrderBy Random QueryOver Desteği

Hiç yorum yok:

Yorum Gönder