我想讨论使用ORM(例如ADO.NET)的优点和缺点。
总之,我认为使用ORM的优势(主要是减少执行重复性任务所花费的时间)远远超过ORM的缺点,例如:很难掌握。
人们可以指出我出错的地方并建议任何进一步的优点/缺点。
答案 0 :(得分:25)
“ORM无法与SQL竞争 查询复杂查询。“
“开发人员对此缺乏了解 代码实际上在做什么 - 开发人员更善于控制使用 SQL“。
“ORM趋于缓慢。”
“开发人员生产力下降的同时 他们学会用ORM编程。“
我说,使用ORM但要牢记这一点。
设计查询并编写代码 这将导致最少的数字 与服务器的往返。它的 往返的开销 这需要时间。
了解其他经历 人们已经选择了 在深入挖掘之前进行ORM。
始终将您的查询与 实际的在SQL中执行 服务器分析器。
修改强> 您不会将ORM用于性能危急情况,就像使用.Net或Java编写操作系统一样。选择前请考虑您的要求。即使您不使用ORM,您也可以通过重复大量代码或使用数据字典来自行完成映射。为什么不使用ORM并知道如何使用它的选项使其几乎快速?权衡利弊,做出选择。
http://mikehadlow.blogspot.ca/2012/06/when-should-i-use-orm.html
答案 1 :(得分:3)
根据要求,您可能希望选择是否使用ORM。 例如:多个持久性引擎支持(需要在Oracle,DB2,MySQL,SQL Server等上运行),您可能会从ORM获得的抽象中受益,但代价是潜在的应用程序性能丢失。
如果您知道您将仅支持特定的持久性引擎,并且您希望能够利用ORM中可能不支持的持久性引擎中的特定功能,那么......很清楚哪个你应该选择的选择。
另一个因素可能是您提到的开发人员知识以及学习新内容的时间和实际项目时间(硬截止日期等)。这适用于已经了解特定ORM的员工与不了解ORM但在ADO.NET /任何其他低级数据访问技术方面表现优异的员工。