【问题标题】:Subsonic 3 VS Entity Framework亚音速 3 VS 实体框架
【发布时间】:2010-11-12 07:48:55
【问题描述】:

有人在这里使用过 Subsonic3 和 Entity Framework,谁能告诉我优缺点? 这是我第一次尝试这些。 Subsonic 与实体框架一样易于设置。我不确定实体框架是否可以与其他数据库一起使用,因为 SubSonic 确实像 MySql PGsql 等......? 我读了这篇文章 (http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic),这足以令人信服地选择实体框架而不是 SubSonic。但我想要第二个开口。

【问题讨论】:

标签: entity-framework subsonic subsonic3


【解决方案1】:

嗯,这两个是完全不同的野兽!

Subsonic 3 是一款出色的工具,可以简单轻松地将数据库结构几乎 1:1 映射到对象类,其中每个类都是底层数据库中表的精确表示(就像 Linq-to 的情况一样-SQL 也是如此)。

另一方面,实体框架针对更复杂的场景,您的域或对象模型(您的类)不一定会 1:1 映射到数据库表。这就是为什么 EF 具有 XML 文件三部曲的原因 - 一个描述概念级别(您的域对象),一个描述存储级别(数据库布局),以及这两者之间的映射。

恕我直言,Subsonic 3 和 Linq-to-SQL 非常适合快速、中小型项目,在这些项目中,您的数据库足够灵活,可以根据需要进行更改,并且您可以非常简单地将对象映射到表。 EF 确实在大型企业应用程序中大放异彩,您的数据库级别可能是一成不变的,您无法更改它 - 或者即使底层数据库发生更改,您的应用程序也需要“生存”。

在我看来,完全不同的野兽 - 完全不同的观众。

马克

PS:我想知道 Tim 在这个比较中是否真的使用了 Subsonic 3,以及他到底在做什么。我的直觉是 EF 会是“更大”的开销,因此性能可能会稍差一些(但更灵活,在企业场景中,即使为此牺牲一些性能,这也是物有所值的)

【讨论】:

  • 在您的 PS 中,文章确实说“Subsonic 2.1(与 3.0 产生的类似结果)”。像你一样,我会认为更轻量级的 SubSonic 会更快。而且我知道使用 SS 与基本编码相比,我放弃了一点性能,但灵活性绝对值得。
【解决方案2】:

如果这有帮助,在我的基准测试中我使用了 Subsonic 2.1(如前所述)并比较了 中等负载场景(如前所述的方法)中的数据访问层。我提供了代码,所以我的测试很容易被复制。

如果您对系统进行加载,在使用时重现 Web 应用程序中的条件,事实证明,EF 可以提供更好的性能。完整 Web 应用程序的负载测试证实了这一点。在更复杂的测试中,延迟加载等 EF 的优化功能可以提供比 Subsonic 更大的性能优势。

如果您比较单个数据访问操作,例如在一个简单的单元测试中,Subsonic 似乎更快。特别是,Subsonic 的初始化速度更快。

如果性能是关键考虑因素,我会推荐 Fluent NHibernate 或 Entity Framework。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多