任何人只要有Subsonic3和Entity Framework在这里谁可以告诉我的优点和缺点的工作? 这是我第一次尝试尝试这些。 亚音速易于安装,从而实体框架。 我不知道,如果实体框架的工作与其他数据库作为亚音速确实像MySQL PGSQL等...? 我读了这篇文章( http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic ),这是足够的说服力在亚音速到选择实体框架。 但我想第二开口。
Answer 1:
那么,这两个是完全不同的野兽!
亚音速3是用于简单且容易地映射数据库结构几乎1一个伟大的工具:1至对象类,其中,每个类将是底层数据库表中的一个精确的表示(如与LINQ到SQL视情况好)。
1到数据库表:在另一方面的目标更复杂的方案,你的域或对象模型(你的类)不一定会映射1实体框架。 这就是为什么EF具有的XML文件的三部曲 - 一个描述概念级(域对象),一个存储级别(数据库布局),并在这两个之间的映射。
恕我直言,亚音速3和LINQ到SQL是完美的快,小到中等规模的项目,你的数据库是非常灵活改变如果需要的话,和你有你的对象,以表一个非常简单的映射。 EF真正的亮点在大型企业应用程序,你的数据库级别可能会是一成不变的,你不能改变它 - 或者你的应用程序需要以“生存”,即使underyling数据库更改。
完全不同的野兽 - 完全不同的对象,在我看来。
渣
PS:我不知道如果蒂姆真的在此相比,在使用亚音速3,以及究竟他在做什么。 我的直觉本来是EF将是“做大”的开销,从而可能会有点不太高性能(但更灵活,并在企业的情况,这是值得其重量的黄金,牺牲了它的一些性能甚至当)
Answer 2:
在这种情况下帮助,在我的基准, 我使用亚音速2.1(如规定)和比较的数据访问层在中等负荷情况下 (如方法说明)。 我提供的代码,所以我的测试很容易被复制。
如果您受到了系统加载,再现一个Web应用程序的条件,同时在使用中,EF证明能够提供更好的性能 。 完整的Web应用程序的负载测试,证实了这一点。 在更复杂的测试,EF,如延迟加载的优化功能可以在亚音速还提供更高的性能优势。
如果你比较单个数据访问操作,例如在一个简单的单元测试,亚音速似乎更快。 特别是亚音速的初始化更加迅速。
我会建议功能NHibernate或实体框架,如果性能是一个重要的考虑因素。