Entity framework ADO.NET实体框架:ORM解决方案之间的决策

Entity framework ADO.NET实体框架:ORM解决方案之间的决策,entity-framework,orm,Entity Framework,Orm,在选择ORM时,我正在为我的新应用程序寻找一些指南。我想通过NHibernate和LINQ对SQL计算EF。我需要来自这个美妙社区的专家声音。 您可以根据以下几点进行评估 可伸缩性 学习曲线 易于使用 演出 等等 嗯,在你列出的三个例子中,NHibernate是时间最长的。如果你想从事一些有着良好记录的工作,那可能是一个安全的开始 它在四个指标(规模/学习曲线/易用性和性能)中都相当不错,尽管您可能会发现,由于它比其他两个指标更长,所以有更多的可用信息 LINQtoSQL的发布时间比实体框架长,

在选择ORM时,我正在为我的新应用程序寻找一些指南。我想通过NHibernate和LINQ对SQL计算EF。我需要来自这个美妙社区的专家声音。 您可以根据以下几点进行评估

  • 可伸缩性
  • 学习曲线
  • 易于使用
  • 演出 等等

  • 嗯,在你列出的三个例子中,NHibernate是时间最长的。如果你想从事一些有着良好记录的工作,那可能是一个安全的开始

    它在四个指标(规模/学习曲线/易用性和性能)中都相当不错,尽管您可能会发现,由于它比其他两个指标更长,所以有更多的可用信息

    LINQtoSQL的发布时间比实体框架长,但只针对SQL Server风格运行。它作为一个适合于特定目的的ORM工作得非常好,但并不像实体框架(提供eSql等)那样功能丰富

    LINQtoSQL非常容易掌握(取决于您对LINQ的了解),最近生成的查询的质量有所提高(自早期的Beta以来)。我不知道它有多好,但你必须认为它与普通开发者的手写T-SQL(现在好,这是一个疯狂的假设)相当。它非常简单,在VisualStudio中为您生成了一个非常好的模型

    对于非SQL Server数据库的支持,还有其他方法

    实体框架是三个框架中最新的,因此,仍然有一些问题需要纠正(希望在下一个版本中)。它将与许多提供者(不限于SQL Server)一起工作,并具有额外的优点,如eSQL和。一开始学习可能有点棘手,但一旦您使用它完成了一到两个解决方案,它就会变得可预测且更容易实现

    由于它是最新的,它将需要更多的学习曲线(也有更多的学习),性能是。。不太理想(目前),但它确实提供了一些有趣的好处(特别是对多个提供商的支持)

    我想我的回答是-你只是在评估,还是需要生成一个可行的(生产就绪的)ORM解决方案

    实体框架可能还没有完全准备好进行重要的生产工作(在较小的解决方案之外),这就给您带来了LINQ到SQL或NHibernate。如果您只打算使用SQLServer数据库,那么LINQtoSQL是一个有趣的选择。否则,NHibernate可能是从事严肃工作的最佳选择

    (1) []
    (2) []

    1。Linq支持继承2。有针对Mysql、Oracle和PostgreSQL的LINQ提供程序。LINQ to SQl支持每种类型的表?…实体框架也是唯一一个正确支持在数据和前端之间使用Web服务的三层设计的实体框架。实体框架v2在N层和SOA体系结构中应该更好,我相信是这样。