我最终决定使用实体框架,因为它在所有ORM中具有最佳性能.但在我开始阅读和编写代码之前,我只想知道是否有任何使用ORM的高流量网站.
目前,在.NET 3.5中发布的EF版本v1.0具有糟糕的性能.我做了大量测试,并在一年前首次发布时与微软进行了几次长时间的电子邮件讨论.EF的当前效率很不理想,在许多情况下,可能会产生绝对恶劣的SQL查询,从而降低您的性能.
.NET 4.0中的Entity Framework v4.0更好.他们已经修复了大部分(如果不是全部)困扰EF v1.0的SQL生成问题(包括我一年前提交给他们的问题.)EF v4.0是否具有最佳性能还有待观察.它比LINQ to SQL更复杂,因为它提供了更大的灵活性.由于发布版本尚不可用,因此无法确定EF v4.0是否最快.
对此的客观答案需要在主要的ORM竞争者之间进行客观,公正的比较,例如EF,LINQ to SQL,nHibernate(最好是LINQ提供商),LLBLGen,甚至一些新成员,如Telerik的ORM,Subsonic等等.
至于使用ORM的大规模,大批量生产系统.我建议查看使用LINQ to SQL的StackOverflow.com本身.SO已成为一个,如果不是的,互联网上的顶级程序员社区.绝对是高音量,这个网站表现非常好.至于其他网站,我真的不能说.大多数主要Web应用程序的内部实现细节通常都是个谜.我所知道的ORM的大多数用途也适用于内部企业系统.财务系统,医疗保健等.对象数据库也用于相同类型的系统,尽管它们的频率要低得多.我会搜索ORM使用和大量网站.
在您的搜索中需要注意的一件事.确保您找到的评论是最新的.ORM场景在过去两年里改变了很多.自ORM首次创建于十年前以来,性能,效率,功能,动态SQL的RDBMS调优能力等都得到了显着改善.
我知道在其中一个播客中,Jeff提到stackoverflow使用Linq-to-SQL
在真正的高流量的网站实际上是从SQL数据库完全移开,因为在今天的应用程序共同写繁重的工作量,这几乎是不可能让他们扩展到超过一台机器,ORM或没有ORM.这被称为" NoSQL运动 "
然而,虽然这是一个非常时髦的主题,但它与没有数千个活跃并发用户的网站完全无关.担心ORM性能也是一个类似的问题:大多数网站实际上并不是"高流量",足以让ORM成为一个问题(除非严重错误实施或应用).