繁体   English   中英

在NHibernate查询中实现条件的更好方法是什么?

[英]What's the better way to implement a condition at NHibernate query?

我正在使用NHibernate的Query的泛型实现。
我的方法:

 public IEnumerable<TEntidade> ObterEntidadesPor(Func<TEntidade, bool> where) { return SessionNH.Query<TEntidade>().Where(where); } 

在这种情况下,NHibernate首先执行“ select * from TEntidade”,将所有信息存储到内存中,然后执行“ where”条件。 这需要很多时间。

有更好的方法吗?

该问题通过Expression<func>解决。

public IEnumerable<TEntidade> ObterEntidadesPor(Expression<Func<TEntidade, bool>> where)
{
    return SessionNH.Query<TEntidade>().Where(where);
}

在寻找答案时,一位同事告诉我Func在构建表达式之前先执行查询。 要在执行查询之前构建表达式,我们必须使用Expression

@RomanArtiukhin在有关问题的评论中也提到了这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM