這類似於這樣的問題:NHibernate - Implement "NOT IN" query using ICriteria如何NOT IN實現而無需建立關係
但是,這並不對我的解決辦法工作。
我有一個訂單:
class Order
{
DateTime CreatedDate { get; set;}
Person CreatedBy { get; set; }
}
和人:
class Person
{
string Name { get; set;} // etc.
}
我想檢索所有的人都認爲做一個日期範圍內沒有有訂單。在SQL最終會是這樣的:
SELECT *
FROM Person
WHERE Id NOT IN (SELECT PersonId
FROM Order
WHERE CreatedDate BETWEEN '2012-01-01' and '2012-01-31')
當我在上面的問題提供瞭解決方案查詢,它如果有2100人以上(SQL不會讓很多參數)失敗。
另外我不能將訂單集合添加到人,因爲這將涉及拉方式太多的數據(我只想要一個日期範圍)。
我怎樣才能做到這一點與NHibernate?
爲什麼不使用HQL或SQL? – Rippo 2012-08-08 14:39:39
我會很高興HQL,但查詢更易於維護。據我所知,SQL不會讓你輕鬆地將你的查詢映射到具有NHibernate的實體。 – 2012-08-09 11:22:25