我想爲我的NHibernate數據訪問編寫一個通用的存儲庫。 Get<T>()
方法應該能夠接受一個可選謂詞,該謂詞應該包含在查詢中 - 也就是說,NHibernate應該在SQL中生成WHERE子句。NHibernate何時執行我的查詢?
public virtual IList<T> Get(Func<T, bool> predicate = null)
{
// Open NHibernate Session
using (var session = NHibernateHelper.OpenSession())
return (predicate != null
? session.Query<T>().Where(predicate)
: session.Query<T>()).ToList();
}
當我傳入一個謂詞並觀察NH生成的SQL語句時,我看不到where子句。
NHibernate何時執行查詢?請致電.Query<T>()
?如果是這樣,我該如何做到這一點?
謝謝,絕對完美! – Jeff 2013-03-22 09:42:30