1

你好,有没有一个选项可以从代码中以编程方式从 nhibernate 构建查询?

我不知道会有多少限制,我正在构建自动生成多少个表,这些表将从对象列表中进行查询。

4

1 回答 1

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);
}
于 2012-05-09T06:49:21.377 回答