我想为我的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