首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >持久层在任何应用程序中的用途是什么?

持久层在任何应用程序中的用途是什么?
EN

Stack Overflow用户
提问于 2013-04-15 21:10:16
回答 3查看 48.9K关注 0票数 43

我必须创建一个应用程序,其中要求我在应用程序中创建一个持久层。该应用程序是用.net编写的。我已经创建了一个业务层和一个表示层,但是我不知道我应该如何以及为什么要创建持久层。

我用谷歌搜索了一下,了解到持久层通常用于存储和检索数据库中的数据。

有人能详细解释一下吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 21:18:57

之所以要在数据库引擎和业务/应用程序逻辑之间构建DAL (数据访问层)或任何其他类型的中间层,是因为通过在数据库引擎和业务/应用程序逻辑之间添加这一层,您可以将应用程序的rest /上层与您当前正在使用的特定数据库引擎/技术隔离开来。

这有几个优点,比如更容易迁移到其他存储引擎,在单个层中更好地封装数据库逻辑(以后更容易替换或修改,取决于您的跨层接口设计得有多好等)。

我的答案在这里,这是一个关于ASP.NET MVC和EF的例子,但是解决方案和项目的结构实际上是独立于技术的:MVC3 and Entity Framework

我还可以阅读一些文章来更好地理解这个问题,例如:http://www.developerfusion.com/article/84492/net-and-data-persistence/

票数 33
EN

Stack Overflow用户

发布于 2013-04-15 21:16:12

持久层,也称为数据访问层或其他术语。

它将获取和保存数据的核心从业务层分离出来。这样做的原因是,您的业务逻辑(应用程序中承担数据操作重任的部分)不会绑定到特定类型的数据源。

数据层需要写入特定于数据库的数据。因此,如果您使用MySQL访问所有数据,那么您需要编写用于该用途的dataLayer。

如果您在某一时刻决定迁移到MongoDB,那么就不需要重写整个应用程序了。您可以只重写数据访问部分,以从MongoDB获取数据。由于业务逻辑并不关心您如何获取数据,只有您这样做,它和表示层才能保持完好。

希望这能有所帮助。

票数 25
EN

Stack Overflow用户

发布于 2013-04-15 21:18:37

如果你没有将你的数据保存在某个地方,当你的应用程序再次打开时,它就不会再出现在那里。您可以按照您所说的将其保存到数据库(SQL、Oracle、PostGRE等),或者直接保存到磁盘(以二进制格式序列化或纯文本等)。

使用一个层来做到这一点是一种很好的做法。它减少了耦合(即意大利面式代码),并使维护变得更容易。

我建议你读一读关于Hibernate的书,它是.NET的表亲NHibernate。

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

https://stackoverflow.com/questions/16016023

复制
相关文章

相似问题

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