如果您要激发为什么要将ORM用于管理/客户的"优点",原因是什么?
尝试并保持每个答案的一个原因,以便我们可以看到被投票的最佳理由
使用ORM的最重要原因是,您可以拥有丰富的面向对象的业务模型,并且仍然能够存储它并快速针对关系数据库编写有效的查询.从我的观点来看,除了您可以编写的高级查询类型之外,与其他生成的DAL相比,我没有看到优秀ORM给您带来的任何真正优势.
我想到的一种查询是多态查询.简单的ORM查询可能会选择数据库中的所有形状.你得到了一系列形状.但根据其鉴别器,每个实例都是正方形,圆形或矩形.
另一种类型的查询是在单个数据库调用中急切地获取对象和一个或多个相关对象或集合的查询.例如,返回每个形状对象,并填充其顶点和侧面集合.
我很抱歉在这里不同意这么多人,但我认为代码生成本身并不足以成为一个ORM.您可以为代码生成器编写或找到许多优秀的DAL模板,这些代码生成器没有ORM所做的概念或性能开销.
或者,如果您认为您不需要知道如何编写好的SQL来使用ORM,那么我不同意.从编写单个查询的角度来看,依赖ORM更容易.但是,使用ORM时,如果开发人员不了解他们的查询如何与ORM及其转换为的SQL一起工作,那么创建性能较差的例程就太容易了.
拥有一个适用于多个数据库的数据层可能是一个好处.虽然这不是我不得不依赖的.
最后,我必须重申,根据我的经验,如果您没有使用ORM的更高级查询功能,还有其他选项可以解决剩余问题,减少学习和减少CPU周期.
哦,是的,一些开发人员确实发现与ORM一起工作很有趣,所以ORM也很好,从保持开发人员的快乐角度来看.=)
加快发展.例如,消除重复代码,例如将查询结果字段映射到对象成员,反之亦然.
使数据访问更加抽象和便携.ORM实现类知道如何编写特定于供应商的SQL,因此您不必这样做.
支持在数据访问层中对业务规则进行OO封装.您可以使用首选的应用程序语言编写(和调试)业务规则,而不是使用笨重的触发器和存储过程语言.
为基本CRUD操作生成样板代码.一些ORM框架可以直接检查数据库元数据,读取元数据映射文件或使用声明性类属性.
您可以轻松迁移到不同的数据库软件,因为您正在开发抽象.