在实体框架上使用反射的优点

时间:2013-08-08 19:43:09

标签: c# asp.net-mvc entity-framework reflection

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

1 个答案:

答案 0 :(得分:2)

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

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

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

但是:这是一个已经解决的问题 - 即使你不想使用完整的ORM,“反射”所涉及的领域也会被更小,更简单的“微观ORM”所解决 - 比如“小巧玲珑” “,”peta-poco“,”simple.data“。在重新发明轮子之前:尝试一种微型ORM。它们比完整的ORM更小更简单,并且通常非常明显更快 - 并且作为权衡,它们不提供完整ORM提供的全部服务。