-1

所以我正在启动一个带有实体框架的 MVC 应用程序,并邀请了一个对数据库更重的朋友进入该项目,他建议放弃实体框架并使用反射作为 ORM(对象关系映射器)。有没有人可以提供任何好的网络帖子或文献来比较这两种技术并列出两者的优缺点?

4

1 回答 1

2

ORM 是一个包含大量服务的大型复杂产品,例如:

  • 物化
  • 延迟加载
  • 持久性(包括排序)
  • 变更跟踪
  • 身份管理
  • 查询抽象(DSL、LINQ/表达式树等)
  • 模型抽象(领域模型和数据模型之间的非平凡映射)
  • 数据库供应商抽象

反射可以提供一小部分- 特别是它可以帮助实现和检查(用于持久性等),但不是所有的 ORM 功能。现在,在很多情况下,您不需要所有这些功能——这很好。但是反射是(相对而言):慢。这就是为什么像 ORM 这样的工具使用大量的元编程来提高速度的原因;相信我——你真的不想写很多元编程代码,除非你在那个领域有经验。

但是:这是一个已解决的问题——即使你不想使用完整的 ORM,“反射”所涉及的区域也可以通过更小、更简单的“微 ORM”来解决——比如“dapper”、“ peta-poco”、“simple.data”。在重新发明轮子之前:尝试其中一种微 ORM。它们更小更简单,而且通常比完整的 ORM快得多- 作为权衡,它们没有提供完整的 ORM 提供的全部服务。

于 2013-08-08T19:59:34.390 回答