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