2012-05-08 43 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); 
}