使用ORM的优点和缺点
我想讨论一下使用ORM(如ADO.NET)的优缺点 优势:使用ORM的优点和缺点,orm,Orm,我想讨论一下使用ORM(如ADO.NET)的优缺点 优势: 加快开发—消除了重复SQL代码的需要 缩短开发时间 降低开发成本 克服了特定于供应商的SQL差异——ORM知道如何编写特定于供应商的SQL,因此您不必这样做 缺点: 当开发人员学习使用ORM编程时,他们的生产力会下降 开发人员无法理解代码实际在做什么-开发人员使用SQL更能控制 ORM有缓慢的趋势 ORM无法与SQL查询竞争复杂查询 总之,我认为使用ORM的优点(主要是减少执行重复性任务所需的时间)远远大于ORM的缺点,例如,难
- 加快开发—消除了重复SQL代码的需要
- 缩短开发时间李>
- 降低开发成本李>
- 克服了特定于供应商的SQL差异——ORM知道如何编写特定于供应商的SQL,因此您不必这样做李>
- 当开发人员学习使用ORM编程时,他们的生产力会下降李>
- 开发人员无法理解代码实际在做什么-开发人员使用SQL更能控制李>
- ORM有缓慢的趋势
- ORM无法与SQL查询竞争复杂查询李>
人们能指出我的错误所在并提出进一步的优点/缺点吗 根据需求,您可能希望选择使用或不使用ORM。 例如:多个持久性引擎支持(需要在Oracle、DB2、MySQL、SQL Server等上运行),您可能会从ORM中获得的抽象中获益,但代价是潜在的应用程序性能损失 如果您知道您将只支持一个特定的持久性引擎,并且希望能够利用持久性引擎中的一个特定功能,而这在ORM中可能不受支持,那么。。。很清楚你应该选择哪一个 另一个因素可能是您提到的开发人员知识、学习新东西的时间和实际项目时间(硬期限等)。这适用于已经了解特定ORM的员工和不了解ORM但擅长ADO.NET/任何其他较低级别数据访问技术的员工 “ORM无法与SQL竞争 复杂查询的查询。“
- LINQ-SQL和实体框架都允许复杂的查询,甚至可以将SQL查询结果转换为对象
- 如果你知道自己在做什么的话,也不一定。SQL探查器足以查看已翻译的SQL查询是什么
- 是的,但是延迟加载和一些智能选项可以使它几乎一样快
- Hibernate和实体框架可能需要时间学习,但从长远来看,它们将节省开发时间。另一方面,LINQ-SQL几乎不涉及学习曲线
ADO.NET本身并不是一个“ORM”。“我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。”没有前者,就无法解决后者。如果您认为某个问题将引发辩论、争论、投票或广泛讨论,那么是否应首先证明该问题的任何答案必然缺乏事实、参考资料和专业知识?举证责任在问题的最后一方。关于“始终将您的查询与正在执行的实际查询进行比较”,这首先违背了使用ORM的全部目的。不,事实并非如此。ORM的目的不仅仅是进行查询。您必须检查查询以查看它们是否转换为最有效的形式,或者根据需要调整ORM查询。大多数ORM还支持直接将SQL查询结果转换为实体。除非是一个非常简单的项目,否则不要期望不懂SQL,也不要在ORM中使用CRUD。事实上,这就是ORM的全部目的:用于任何地方都没有瓶颈的非常简单的项目。当你到了“你必须检查查询,看看它们是否转换为最有效的形式,或者根据需要调整你的ORM查询”的地步时,它首先破坏了使用ORM的全部目的,因为使用ORM的目的就是要避免这一点。你不能为一个已经结束的问题添加答案。是的,再次回到ORM,ORM只用于破解一些不需要任何db性能的简单应用程序。你对“大”和“db重”的定义需要修改。请给我举几个使用ORM解决持久需求的大型数据库密集型项目。是的,ORM的全部目的是根本不涉及查询。所以你会问“为什么ORM支持通过SQL查询”。事实上,这正是我从一开始就说的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。....................................................................第一句话,是的,你开始明白了。这还不够明显吗?我想这不是因为人们太深陷ORM,所以