我在选择ORM时正在为我的新应用程序寻找一些指导.我想评估EF over NHibernate和LINQ to SQL.我需要来自这个精彩社区的专家发言.您可以评估以下几点.
可扩展性
学习曲线
使用方便
表现ETC.
RobS.. 12
嗯,在你列出的三个中,NHibernate已经存在时间最长.如果您想使用具有良好记录的东西,这可能是一个安全的起点.
它在整个四个指标(规模/学习曲线/易用性和性能)中非常均匀,尽管您可能会发现有更多可用信息,因为它比其他两个更长.
LINQ to SQL的发布时间比实体框架要长,但只针对SQL Server版本运行.它作为一个适合用途的ORM非常有效,但不像Entity Framework(它提供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非常有效,但不像Entity Framework(它提供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 ]