与实体框架相比,使用反射的优势

本文关键字:反射的 实体 框架 | 更新日期: 2023-09-27 18:27:07

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

与实体框架相比,使用反射的优势

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

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

反射可以提供其中的一小部分,特别是它可以帮助物化和检查(用于持久性等),但不是所有的ORM功能。现在,在很多情况下,不需要所有这些功能,这很好。但反思(相对而言)是:缓慢。这就是为什么像ORM这样的工具使用大量的元编程来使它们快速;相信我,你真的不想写很多元编程代码,除非你在这方面有经验。

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