2012-05-08 6 views
2

こんにちは、コードからプログラムでnhibernateからのクエリオーバーを構築するオプションはありますか?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); 
} 
関連する問題