NHibernate와 기준이 일치 :NHibernate와 Criteria가 결합되어 있습니까?
기준 또는 QueryOver에서 가능합니까? 그렇지 않은 경우 동일한 쿼리에서 두 결과의 합집합을 얻을 수있는 다른 방법이 있습니까?
NHibernate와 기준이 일치 :NHibernate와 Criteria가 결합되어 있습니까?
기준 또는 QueryOver에서 가능합니까? 그렇지 않은 경우 동일한 쿼리에서 두 결과의 합집합을 얻을 수있는 다른 방법이 있습니까?
당신은 직접 조합 할 수 없습니다,하지만 당신은이 미래의 쿼리와 조합 코드의 결과를 수행 할 수 있습니다이 후
var resultSet1 = this.Session.CreateCriteria<A>().Future<A>();
var resultSet2 = this.Session.CreateCriteria<B>().Future<B>();
을 때 하나 열거 결과 집합, NHibernate에 하나의 쿼리를 실행합니다 여러 결과 세트를 리턴 할 데이터베이스에 전달하십시오. 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)
을 하나의 검색어로 기준으로 삼습니다.
나는 그것을 시도 할 것이다. 감사합니다 – Mattias
이것은 내 상황에 가장 효과적이었습니다. 감사! – Mattias