我认为使用 Linq2Nibernate 的目的是返回 IQueryable 并建立一个表达式树。我不确定这是否正确。
如果他们不打算返回 IQueryable,为什么有人会使用 Linq2Nibernate?
它还能用来做什么?
我希望对此主题有更多的投入
我认为使用 Linq2Nibernate 的目的是返回 IQueryable 并建立一个表达式树。我不确定这是否正确。
如果他们不打算返回 IQueryable,为什么有人会使用 Linq2Nibernate?
它还能用来做什么?
我希望对此主题有更多的投入
我打算使用 NHibernate.Linq 用 LINQ 表达式替换我的 HQL 和标准 API 查询。换句话说,我将在代码中生成查询(作为 LINQ 表达式),然后将其传递给 NHibernate.Linq 和 NHib 以将其转换为数据库查询。
仅供参考,有可用的alpha 版本。
我已经计划开始使用 Linq2Nibernate,但还没有开始。
我想要使用 Linq2Nibernate 的原因是构造标准并稍后查询它们时的好语法。
这是一个很好的简单示例。 http://ayende.com/Blog/archive/2007/03/16/Linq-for-NHibernate.aspx
我将 Linq2Nhibernate 与返回 IQueryable 对象的存储库模式一起使用。如您所知,IQueryable 只是一个查询定义——还没有触及数据库。
然后将本地需求添加到查询中,最后具体化对象或列表。
似乎工作得很好,并且可以防止在更高抽象层对部分数据进行不必要的数据库查询。
什么是 Linq2NHibernate?因为有几个项目试图为 nhibernate 实现一个 linq 提供程序,但在完成之前都停止了。
任何 linq 提供程序都需要返回 IQueryable,或者更好的是 IEnumerable,因为这就是 linq 的工作方式。返回 IQueryable 很方便,因为您可以重新使用现有代码将其他运算符填充到已创建的查询中(因为可能返回 IQueryable 的 ctx.Employee 已经是一个查询)