nHibernate QueryOver以编程方式构建?

End*_*iss 1 c# asp.net nhibernate queryover

您好,是否有一个从代码中以编程方式从nhibernate构建查询的选项?

我不知道有多少限制,我正在构建自动机的表数将从对象列表进行查询.

Sam*_*l G 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();
Run Code Online (Sandbox Code Playgroud)

如果您需要,您甚至可以动态加入:

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