Nhibernate 生成的SQL执行效率如何提高?
各抒己见。。

解决方案 »

  1.   

    学习,只用过linq to sql ,但各种不方便,想尝试一下Nhibernate 
      

  2.   

    Nhibernate单配置就可以吓跑一堆人
      

  3.   

    各有优势
    如linq
     NHibernate
     Entity Framework
    sring.net
    Linq to Sql与NHibernate都可以较好的性能完成数据库操作。NHibernate在读、写、更新、删除各项操作中领先Linq to Sql,
      

  4.   

    好像Nhibernate 生成的SQL的执行效率不会比你手写的SQL执行效率慢吧?
      

  5.   

    执行sql的都是数据库,会有什么差别
      

  6.   


    一直很想不通,微软一会强烈推荐asp.net控件、事件驱动方式开发,过后又推翻了MVC的非控件、非事件驱动式开发方式;
    至今仍对linq处于偶尔小用程度,对 Entity Framework 更是排斥,对Nhibernate 的复杂配置和全英文环境感到敬畏还是ado.net好呀。。
      

  7.   

    可以参考一下PDF.NET数据开发框架,它是直接基于ADO.NET的,效率有保障。
    地址:
    http://blog.csdn.net/bluedoctor/archive/2010/01/24/5251913.aspx
      

  8.   

    PDF.NET数据开发框架的优势就是几乎不需要配置。
      

  9.   

    一般情况下,用了框架,性能会比直接用ado.net差一些的,不参考个人能力等情况。
      

  10.   

    linq to entities 然后给实体加缓存,数据库依赖的,这种方式我现在很喜欢
      

  11.   

    效率和使用方式有很大关系,比如,用了 dynamic-update,只有更改过的属性会出现在update语句里,用了延迟加载,那么第一次访问属性的时候才发出select语句有一个地方 nh 比 ef 差很多,如果查询结果有1000条,那么 nh 会很慢,大部分时间都花在用反射构造 .net 对象上了,ef 也要构造 .net 对象,但是速度快很多。我做过一个测试,印象中nh和ef构造对象的时间大约是 5:1,我猜想可能是因为 ef 是微软自己家的,有能力在编译器级别上做优化。但是在现实中,我们不太可能从一个查询构造这么多对象,一般也就10条20条,再多就要分页了。nh 在我电脑上的启动速度有点慢,可能到服务器上这个不是问题至于配置,确实是nh学习是的难点,我至今也没有完全掌握。不过当你写过几个能跑起来的小程序,那么配置上的大部分工作都可以通过复制以前的东西来完成。我不赞成先写数据库,然后按照数据库写映射文件和类的做法。我通常是先写配置,然后用工具向上生成类,向下生成数据库。如果你会nh,那么有一天有人要你用java写个东西,你可以很快的用上 hibernate,当然,这个理由很欠揍
      

  12.   


    我做过测试,发现大部分时间都是浪费在将数据库记录转换成 .net 对象上了。准确的数字网了,印象中大致的时间比例是:nh:10, 
    ef:2, 
    ado.net:1当然 ado.net 只是参照,他直接使用db reader,没有构造.net对象
      

  13.   


    subsonic 也很好用,采用约定优于配置的方式。不过它对 medium trust level 不够友好
      

  14.   

    还是原生的ado.net 最可靠
    其他的基本上华而不实