实体框架4.1 VS Nhibernate,用于ORM中的noob

实体框架4.1 VS Nhibernate,用于ORM中的noob,nhibernate,entity-framework-4.1,Nhibernate,Entity Framework 4.1,我正在第一次评估ORM。请建议我应该为我的下一个项目选择哪一个 我首先用EF4.1代码编写了两个示例代码。在使用Nhibernate开始相同的练习之前,我想知道是否有人已经在生产应用中使用了这两种方法 我的评价标准 数据库访问速度 学习曲线(因为我是ORM新手) 社区支持 教程/书籍供应 我应该考虑的其他事情(因为我是ORB)< /LI> 我希望拥有ORM和生产级应用经验的人能回答我的问题。 提前感谢 我知道这个问题问起来可能有点危险;) 好吧,我个人的经验告诉你,在复杂的情况下,我的选择是正确

我正在第一次评估ORM。请建议我应该为我的下一个项目选择哪一个

我首先用EF4.1代码编写了两个示例代码。在使用Nhibernate开始相同的练习之前,我想知道是否有人已经在生产应用中使用了这两种方法

我的评价标准

  • 数据库访问速度
  • 学习曲线(因为我是ORM新手)
  • 社区支持
  • 教程/书籍供应
  • 我应该考虑的其他事情(因为我是ORB)< /LI> 我希望拥有ORM和生产级应用经验的人能回答我的问题。

    提前感谢


    我知道这个问题问起来可能有点危险;)

    好吧,我个人的经验告诉你,在复杂的情况下,我的选择是正确的,它给了我更好的时间效果,而且它更容易学习

    我首先学习了它,然后尝试了实体框架,我发现学习nhibernate更容易,尽管那一刻我对ORM一无所知

    我可以说,社区支持、教程和书籍都很好,有很多可供学习的材料


    现在我可以同时使用它们,但仍然更喜欢Nhibernate。

    如果你是ORM的新手,只需要基本功能,你可能会发现实体框架和Nhibernate过于简单,应该考虑使用重量轻的,比如Massible:

    也就是说,EF和NH面临两个主要问题

  • EF是microsoft支持的所有工具,因此默认情况下,他们的所有工具都使用EF。使用EF使初学者代码更容易
  • NHibernate更成熟,有更大的功能集(如果您需要),也有一个很好的开发社区和大量关于它的博客信息
  • 如果你想要简单/快速但不受支持,我会选择Massive;如果你想要简单和MS支持但在某些方面有限,我会选择EF;如果你有时间学习适当的ORM,我会选择NHibernate


    希望这有帮助

    在使用了EF 4.1和Castle ActiveRecord(基于NHibernate)之后,我将对它们进行如下评级:

    数据库访问速度-对于任何远程复杂的对象,NHibernate的访问速度大致相同。EF的问题是,它创建了如此复杂的SQL,以至于很难知道如何优化它,或者是否有可能这样做

    学习曲线——我个人认为EF更容易开始,但其他人可能会有不同的感觉,而且两者都有学习曲线

    社区支持-取决于你所说的“支持”是什么意思。你会在网上(和这个网站)找到很多关于这两者的信息。NHibernate是开源的,而EF由MS控制

    教程/书籍-我相信目前EF有更多的“官方”资源可用,但在论坛上搜索可能会得到你在书籍中找不到的东西


    Anthing else——认识到ORM的目的是简化开发人员的数据访问层。然而,这两种ORM(以及几乎所有其他重量级ORM)都希望您使用特定的编码模式来实现这种简化。虽然编码模式实施不是一件坏事(有些人认为这是必须的),这是你在选择之前一定要准备的东西。

    你应该把它转换成一个社区维基:)@Claudio现在我在编辑这个问题时看不到社区维基选项..NET ORMs:添加NH的
    NHibernate实用书籍
    NHibernate食谱
    。有更多的资源,NH然后只有论坛。我厌倦了大规模和petapoco,我发现petapoco是更好的为我的需要。现在我要和它一起生活一天,看看事情会怎样。谢谢你介绍我。我没有意识到这一点。