我在选择ORM时正在为我的新应用程序寻找一些指导。我想评估EF over NHibernate和LINQ to SQL。我需要来自这个精彩社区的专家发言。 您可以评估以下几点。
- 可扩展性
- 学习曲线
- 使用方便
- 性能 等等。
我在选择ORM时正在为我的新应用程序寻找一些指导。我想评估EF over NHibernate和LINQ to SQL。我需要来自这个精彩社区的专家发言。 您可以评估以下几点。
嗯,在你列出的三个中,NHibernate已经存在时间最长。如果您想使用具有良好记录的东西,这可能是一个安全的起点。
它在四个指标(规模/学习曲线/易用性和性能)中非常均匀,尽管您可能会发现有更多可用信息,因为它比其他两个更长。
LINQ to SQL的发布时间比实体框架更长,但只针对SQL Server版本运行。它作为一个适合用途的ORM非常有效,但不像功能框架那样功能丰富(它提供了eSql等)。
LINQ to SQL非常容易掌握(取决于您对LINQ的了解),并且最近生成的查询的质量得到了提高(自早期的测试版以来)。我不确定它的扩展或表现有多好,但你必须认为它与普通开发人员的手写T-SQL相提并论(好吧,现在这是一个疯狂的假设!)。它非常简单,并在Visual Studio中为您生成一个非常好的模型。
还有其他 (2)替代方案 用于非SQL Server数据库支持
实体框架是三者中最新的,因此仍有一些问题需要纠正(希望在下一版本中)。它可以与许多提供程序(它不仅限于SQL Server)一起使用,并且具有额外的优点,例如eSQL和 (1)Table-Per-Type继承。一开始学习起来可能有点棘手,但是一旦你用它做了一两个解决方案,它就变得可以预测并且更容易实现。
由于它是最新的,它在学习曲线方面需要更多一点(还有更多需要学习的东西),而且性能是......不太理想(目前)但它确实提供了一些有趣的好处(特别是支持多个提供商)。
我想我的回答是 - 您只是评估还是需要生成可行的(生产就绪)ORM解决方案?
实体框架可能尚未准备好进行严肃的生产工作(在较小的解决方案之外),这使您无法使用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 ]
嗯,在你列出的三个中,NHibernate已经存在时间最长。如果您想使用具有良好记录的东西,这可能是一个安全的起点。
它在四个指标(规模/学习曲线/易用性和性能)中非常均匀,尽管您可能会发现有更多可用信息,因为它比其他两个更长。
LINQ to SQL的发布时间比实体框架更长,但只针对SQL Server版本运行。它作为一个适合用途的ORM非常有效,但不像功能框架那样功能丰富(它提供了eSql等)。
LINQ to SQL非常容易掌握(取决于您对LINQ的了解),并且最近生成的查询的质量得到了提高(自早期的测试版以来)。我不确定它的扩展或表现有多好,但你必须认为它与普通开发人员的手写T-SQL相提并论(好吧,现在这是一个疯狂的假设!)。它非常简单,并在Visual Studio中为您生成一个非常好的模型。
还有其他 (2)替代方案 用于非SQL Server数据库支持
实体框架是三者中最新的,因此仍有一些问题需要纠正(希望在下一版本中)。它可以与许多提供程序(它不仅限于SQL Server)一起使用,并且具有额外的优点,例如eSQL和 (1)Table-Per-Type继承。一开始学习起来可能有点棘手,但是一旦你用它做了一两个解决方案,它就变得可以预测并且更容易实现。
由于它是最新的,它在学习曲线方面需要更多一点(还有更多需要学习的东西),而且性能是......不太理想(目前)但它确实提供了一些有趣的好处(特别是支持多个提供商)。
我想我的回答是 - 您只是评估还是需要生成可行的(生产就绪)ORM解决方案?
实体框架可能尚未准备好进行严肃的生产工作(在较小的解决方案之外),这使您无法使用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 ]