0
我看實體類似的東西(簡體):如何通過NHibernate Criteria API檢索唯一實體?
public class Person
{
public Guid Id { get; set; }
public string Name { get; set; }
public IList<Department> Departments { get; set; }
}
public class Department
{
public Guid Id { get; set; }
public string Name { get; set; }
}
我通過查詢API標準數據庫中該有一定的名字部門應該匹配類似模式的所有人員。
恰巧一個人包含兩個或多個部門,其名稱包含查詢所使用的相同字符序列。因此同一個人多次返回。爲了抑制這一點,我知道我可以使用criteria.SetResultTransformer(Transformers.DistinctRootEntity);
,但只有在結果沒有分頁的情況下,它纔有效。
當我分頁的結果時,我不僅需要獲得第一頁,但我也需要知道總共有多少實體。不幸的是,調用criteria.SetProjection(Projections.RowCount())
時,結果轉換器不起作用,因爲沒有要轉換的結果。
我能以某種方式避免使用結果轉換器檢索整個人員列表,然後手動將正確部分從集合中取出嗎?
問候
奧利弗Hanappi
當我使用不同的只有列將被返回,這是包括在不同的投影。 NHibernate會再次查詢數據庫以獲取所有數據嗎? – 2009-10-21 10:50:04
什麼數據?正如我所看到的,你只需要行數或者你的意思是什麼? – Sly 2009-10-21 10:52:34
啊,我明白你的意思了!仍然存在一個問題:當獲得分頁結果時,將檢索例如25人。之後,結果轉換器被應用,例如3人被刪除。那麼我的查詢會返回22個人,還是我錯了? – 2009-10-21 11:00:23