NHibernateとの結合条件と基準:NHibernateとCriteriaとの統合?
CriteriaまたはQueryOverで可能ですか? そうでない場合は、同じクエリ内で2つの結果の和集合を得る他の方法はありますか?
NHibernateとの結合条件と基準:NHibernateとCriteriaとの統合?
CriteriaまたはQueryOverで可能ですか? そうでない場合は、同じクエリ内で2つの結果の和集合を得る他の方法はありますか?
:この後
var resultSet1 = this.Session.CreateCriteria<A>().Future<A>();
var resultSet2 = this.Session.CreateCriteria<B>().Future<B>();
を、どちらかの結果セットが列挙されている場合、NHibernateは1つのクエリを発行します複数の結果セットを返すデータベースに渡します。 SQL Serverを使用していない場合は、データベースが複数の結果セットをサポートしていない可能性があります。
これは、HQLを使用しても実行できません。この他のS.O. post
一つの方法は、生のSQLに戻ってドロップすると、名前付きクエリ
<sql-query name="MyQuery">
<![CDATA[
select col1,col2 from table1
union
select col1,colA from table2
]]>
</sql-query>
を使用して、/ POCO
var query = Session
.GetNamedQuery("MyQuery")
.SetResultTransformer(new AliasToBeanResultTransformer(typeof(MyDto)));
return query.List<MyDto>();
この列は異なる可能性があるため、残念ながらオプションではありません。しかし、ヒントをありがとう! +1 – Mattias
あなたが使用することができ、あなたのDTOに戻ってそれを変換するためにAliasToBeanResultTransformerを使用することです -
NHibernate.Criterion.Restrictions.Or(ICriterion FirstQuery,
ICriterion SecondQuery)
を1つのクエリで指定します。
あなたが直接労働組合を行うことはできませんが、2つの将来のクエリと労働組合のコードで結果行うことができます
私はそれを試してみます。ありがとう – Mattias
これは私の状況に最適です。ありがとう! – Mattias