entity-framework - ADO.NET Entity Framework : Decision Making between ORM solutions

标签 entity-framework orm

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

  • 可扩展性
  • 学习曲线
  • 易于使用
  • 表现
    等等。
  • 最佳答案

    嗯,在您列出的三个中,NHibernate 是最长的。如果您想使用具有良好记录的东西,那可能是一个安全的起点。

    它在四个指标(规模/学习曲线/易用性和性能)上相当均匀,尽管您可能会发现有更多可用信息,因为它比其他两个指标更长。

    LINQ to SQL 的发布时间比 Entity Framework 更长,但仅针对 SQL Server 风格运行。它作为一个适合用途的 ORM 工作得很好,但不像 Entity Framework (它提供 eSql 等)那样功能丰富。

    LINQ to SQL 非常容易掌握(取决于您对 LINQ 的了解),而且最近生成的查询的质量有所提高(自早期测试版以来)。我不确定它的扩展性或性能如何,但您必须认为它与普通开发人员的手写 T-SQL 相当(好吧,现在这是一个疯狂的假设!)。它非常简单,并在 Visual Studio 中为您生成一个非常好的模型。

    还有其他(2) alternatives对于非 SQL Server 数据库支持

    Entity Framework 是三者中最新的,因此仍有一些问题需要纠正(希望在下一个版本中)。它将与许多提供程序一起使用(不限于 SQL Server)并且具有额外的优点,例如 eSQL 和 (1) Table-Per-Type inheritance .刚开始学习可能有点棘手,但是一旦你用它完成了一两个解决方案,它就会变得可预测并且更容易实现。

    由于它是最新的,它在学习曲线方面需要更多的时间(还有更多的东西需要学习),而且性能......不太理想(目前)但它确实提供了一些有趣的好处(尤其是支持多个提供商)。

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

    Entity Framework 可能还没有准备好进行严肃的生产工作(在较小的解决方案之外),这让您只能使用 LINQ to SQL 或 NHibernate。如果您只打算使用 SQL Server 数据库,那么 LINQ to SQL 是一个有趣的选择。否则,NHibernate 可能是认真工作的最佳选择。

    (1) [ http://msdn.microsoft.com/en-us/data/cc765425.aspx ]
    (2) [ http://www.devart.com/dotconnect/linq.html ]

    关于entity-framework - ADO.NET Entity Framework : Decision Making between ORM solutions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/349718/

    相关文章:

    c# - 我如何传递 MemberInitExpression 对象

    c# - PredicateBuilder 的编程 where in 子句

    hibernate - EntityManager 刷新问题

    go - SQLBoiler 从 `AndIn` 中的另一个表中选择

    php - Doctrine2 刷新单个删除的实体

    c# - 使用最小起订量的同步方法测试 EF 异步方法

    c# - 更新 Entity Framework 中的特定字段

    c# - 在 EF 4 中,您更喜欢 ObjectSet 还是 CreateQuery?

    java - Hibernate 和存储过程

    java - Hibernate 中 CustomCollectionType 与 UserCollectionType 的预期用例是什么?