【发布时间】:2013-03-22 08:44:51
【问题描述】:
我正在尝试为我的 NHibernate 数据访问编写一个通用存储库。 Get<T>() 方法应该能够接受一个可选的谓词,该谓词应该包含在查询中——也就是说,NHibernate 应该在 SQL 中生成 WHERE 子句。
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>()的时候对吗?如果是这样,我该如何实现?
【问题讨论】:
标签: c# linq nhibernate