zoukankan      html  css  js  c++  java
  • 10分钟搞定Linq to NHibernate(二)——查询篇

    有人问过我一个问题,既然用了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查询语句的代码。

    ProductsDao

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

     代码下载

  • 相关阅读:
    golang 使用 protobuf 的教程
    golang语言中sync/atomic包的学习与使用
    《算法竞赛进阶指南》0x21有向无环图中点的可达性统计 topsort+bitset
    《算法竞赛进阶指南》0x21树和图的遍历 求dfs序以及树的重心
    《算法竞赛进阶指南》0x17二叉堆 利用优先队列求k叉哈夫曼树的最优结构
    《算法竞赛进阶指南》0x17二叉堆 链表+红黑树实现高效插入、删除、取最小值
    《算法竞赛进阶指南》0x17二叉堆 POJ2442 矩阵取数求前N大
    GIT-windows系统部署gitblit服务器
    mysql 端口修改
    VUE-开发工具VSCode
  • 原文地址:https://www.cnblogs.com/GoodHelper/p/Linq2NHibernate_select.html
Copyright © 2011-2022 走看看