首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >现在持久化的最佳实践是什么?

现在持久化的最佳实践是什么?
EN

Stack Overflow用户
提问于 2008-12-12 10:19:57
回答 5查看 1.6K关注 0票数 8

我来自java背景。

但是,我想要一个跨平台的视角,看看什么是持久化对象的最佳实践。

在我看来,有三个阵营:

  • 奥姆营
  • 直接查询营,例如JDBC/DAO,iBatis
  • 林克营地

人们是否仍在手工编码查询(绕过ORM)?为什么,考虑到通过JPA、Django、Rails提供的选项。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-12 12:26:15

没有一个最好的坚持实践(尽管有多少人尖叫说ORM是最好的实践可能会导致你相信相反)。唯一的最佳实践是使用最适合您的团队和项目的方法。

我们使用ADO.NET和存储过程进行数据访问(尽管我们确实有一些帮助程序使编写变得非常快,例如SP类包装器生成器、IDataRecord到对象转换器,以及一些封装常见模式和错误处理的高阶过程)。

有很多原因,我不想在这里讨论,但我想说的是,这些决定对我们的团队是有效的,我们的团队也同意。说到底,这才是最重要的。

票数 6
EN

Stack Overflow用户

发布于 2008-12-12 11:33:34

我目前正在阅读.net中持久化对象的内容。因此,我不能提供一个最佳实践,但也许我的洞察力可以给你带来一些好处。直到几个月前,我还一直使用手工编码的查询,这是我ASP.classic时代的坏习惯。

Linq2SQL -非常轻量级,很容易跟上速度。我喜欢强类型查询的可能性和SQL不是一次执行的事实。相反,当您的查询准备就绪(所有已应用的筛选器)时,将执行它,因此您可以将数据访问与数据筛选分开。此外,Linq2SQL允许我使用与动态生成的数据对象分离的域对象。我还没有在更大的项目上尝试过Linq2SQL,但到目前为止似乎很有希望。哦,它只支持MS,这太可惜了。

实体框架--我玩了一会儿,不喜欢它。它似乎想为我做所有的事情,而且它在存储过程中不能很好地工作。EF支持Linq2Entities,这再次允许强类型查询。我认为它仅限于MS,但我可能错了。

SubSonic 3.0 (Alpha) --这是一个新版本的SubSonic,它支持Linq。SubSonic的酷之处在于它基于模板文件(T4模板,用C#编写),您可以轻松地修改这些文件。因此,如果您希望自动生成的代码看起来不同,只需更改它:)。我只是尝试了一个预览到目前为止,但将看到阿尔法今天。看看这里,SubSonic 3α。支持MySql,但不久将支持甲骨文、MySql等。

到目前为止,我的结论是使用Linq2SQL,直到SubSonic准备就绪,然后切换到它,因为SubSonics模板允许更多的定制。

票数 3
EN

Stack Overflow用户

发布于 2008-12-12 12:10:42

至少还有一个:系统流行率

据我所知,什么是最适合你的,在很大程度上取决于你的环境。我可以看到,对于非常简单的系统,使用直接查询仍然是一个好主意。此外,我还看到Hibernate无法很好地处理复杂的遗留数据库模式,因此使用ORM可能并不总是有效的选择。如果您有足够的内存将所有的对象都放入RAM中,那么系统的流行率应该是不可阻挡的快。不知道LINQ,但我想它也有它的用途。

所以,和很多时候一样,答案是:了解各种工作工具,这样你才能使用最适合你特定情况的工具。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/362380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档