gpt4 book ai didi

database - 使用 OR-Mapper 有意义吗?

转载 作者:太空狗 更新时间:2023-10-30 01:47:04 25 4
gpt4 key购买 nike

使用 OR 映射器有意义吗?

我将这个问题放在 stack overflow 上,因为这是我所知道的最好的地方,可以找到愿意提供帮助和意见的聪明的开发人员。

我的推理如下:

1.) SQL 属于哪里?

a.) 在我从事的每个专业项目中,数据的安全性一直是关键要求。存储过程为控制访问和审核提供了一个天然的网关。

b.) 生产中的应用程序问题通常可以在表和存储过程之间解决,而无需推出新版本。

2.) 如何控制生成的 SQL?我相信解析树可以生成高效的 SQL。我在 SQL-Server 和 Oracle 中优化 SQL 有相当多的经验,但如果我再也不必这样做,就不会觉得受骗了。 :)

3.) 如果我从存储过程中获取数据,那么使用 OR-Mapper 有什么意义?

我已经将存储库模式与自主开发的通用数据访问层一起使用。如果需要缓存一个集合,我就缓存它。我也有在小型 CRUD 应用程序上使用 EF 的经验,以及帮助调整遇到性能问题的 NHibernate 应用程序的经验。所以我有点偏,但愿意学习。

在过去的几年里,我们一直听到许多受人尊敬的开发人员提倡使用特定的 OR-Mappers(Entity-Framework、NHibernate 等)。

谁能告诉我为什么有人应该转向 ORM 进行大型项目的主流开发?

编辑:http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html似乎对这个主题有强烈的讨论,但它已经过时了。

另一个编辑:每个人似乎都同意存储过程将用于重型企业应用程序,因为它们具有性能优势并且能够将编程逻辑添加到更接近数据的位置。

我发现支持 OR 映射器的最有力论据是开发人员的生产力。

我怀疑 ORM 运动的一个重要插入力是开发人员倾向于保持不可知的持久性(不关心数据是在内存中 [除非缓存] 还是在数据库中)。

ORM 似乎是本地和小型 Web 应用程序的出色省时工具。

也许我看到的最好的建议来自 client09:使用 ORM 设置,但对数据库密集型的东西使用存储过程(当 ORM 似乎不足时也称为存储过程)。

最佳答案

多年来我一直是专业 SP,并认为这是进行 DB 开发的唯一正确方法,但我完成的最后 3-4 个项目是在 EF4.0 中完成的,没有 SP,并且改进了我的工作效率确实令人惊叹 - 我现在可以用几行代码来完成以前需要一天才能完成的工作。

我仍然认为 SP 对于某些事情很重要(有时您可以通过精心选择的 SP 显着提高性能),但对于一般的 CRUD 操作,我无法想象回头。

所以对我来说简短的回答是,开发人员的工作效率是使用 ORM 的原因 - 一旦你克服了学习曲线。

关于database - 使用 OR-Mapper 有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5343687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com