下面的nhibernate查詢引起我的問題,因爲它會返回多個同一行,因爲子表有多個匹配提供條件的行。我想知道的是在nhibernate中執行此相同查詢的最有效/最佳實踐,但只需獲取DataMappingBase中的每一行一次。返回多個相同的行是打破我返回的結果數量,因爲我試圖限制它25但有時我得到相同的行25次。NHibernate多表查詢返回同一行不止一次
MappedID id = null;
DataMappingBase mapBase = null;
NameDetails name = null;
dmbs = mappingSession.QueryOver<DataMappingBase>(() => mapBase)
.JoinAlias(() => mapBase.IDs,() => id).WhereRestrictionOn(() => id.SecondaryDataIDType).IsNull()
.JoinAlias(() => mapBase.Names,() => name).WhereRestrictionOn(() => name.Name).IsInsensitiveLike(request.Filter, MatchMode.Anywhere)
.Take(request.MaxResults)
.List();
我目前正在在轉換上述查詢,以一種超然的查詢和刪除「拿」的條款,並得到它只是返回匹配行的ID,並把它在一個子查詢選擇使用從「DataMappingBase」行ID在子查詢返回的ID中,但我不確定這是否是最好的方式。
您正在使用一個ISession或IStatelessSession? – Danielg 2012-03-15 18:12:23
@Danielg ISession – Seer 2012-03-15 20:40:48