有人问过我一个问题,既然用了NHibernate还有必要用Linq吗?就这个问题,我回答下列几点:

  1.Linq to NHibernate有VS的IDE提示,编译器可以帮助我提示出错误。

  2.Linq to NHibernate最大限度的帮我们优化SQL语句,尤其是匿名类的查询语句和聚合函数的查询。

  3.可以结合Linq加NHibernate各自的延迟加载特性,帮我们在必要的时候生成特定的SQL语句。

  4.统一语言,必要的时候不用学习HQL来增加学习成本。

  5.方便于满足复杂查询的需求(如报表)。

然而对上述观点我提出如下建议:

  1.建议映射文件*.hbm.xml文件的lazy="true"来开启延迟加载。

  2.数据库访问对象(Dao)类的返回值建议使用IQueryable<T>泛型类型或者IQueryable接口

 

以下是Linq to NHibernate查询语句的代码。

 

 

 

 query;
        }
    }
}

 

 

从上述代码,我可以看到Linq to NHibernate查询语句和SQL语句的对照。

 代码下载

相关文章:

  • 2021-12-31
  • 2022-12-23
  • 2022-12-23
  • 2023-02-17
  • 2021-11-19
  • 2021-12-11
猜你喜欢
  • 2022-02-16
  • 2022-12-23
  • 2021-08-30
  • 2021-07-12
  • 2022-02-19
相关资源
相似解决方案