2012-05-08 41 views
2

你好,有沒有一個選項,以編程方式從代碼從nhibernate構建queryover?nHibernate QueryOver以編程方式構建?

我不知道會有多少限制,我建立了多少個自動建表,它將從一個對象列表中進行查詢。

+2

QueryOver僅僅是一個類型安全,magic-無需字符串構建Criteria查詢的方式,所以是的...通過使用Criteria! – HackedByChinese

+0

你能舉一個你具體處理的例子嗎?這種事情是可能的...一點。 –

回答

5

如果你正在談論的動態限制,那麼你可以做:

var query = _session.QueryOver<Something>(); 
if(someterm!=null) 
    query.Where(x=>x.SomeTerm==someTerm); 

if(someotherterm!=null) 
    query.Where(x=>x.SomeOtherTerm==someotherterm); 

var results = query.List(); 

你甚至可以動態地加入,如果你需要像:

if(something!=null){ 
    SomeReference srAlias = null; 
    query.JoinAlias(x=>x.SomeReference,()=>srAlias, JoinType.LeftOuterJoin) 
     .Where(x=>srAlias.Something==something); 
}