在任何应用程序中使用持久层有什么用?

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

我用Google搜索并了解到持久层通常用于存储和检索数据库中的数据。

任何人都可以详细解释一下吗?

您在数据库引擎和业务/应用程序逻辑之间构建DAL(数据访问层)或任何其他类型的中间层的原因是,通过在中间添加此层,您可以将应用程序的其余/上层与您正在使用的特定数据库引擎/技术。

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

在这里看到我评价最高的答案,它是一个关于ASP.NET MVC和EF的例子,但解决方案和项目的结构实际上是技术无关的: MVC3和entity framework

另请阅读一些文章以更好地了解此事,例如: http : //www.developerfusion.com/article/84492/net-and-data-persistence/

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

它分离了从业务层获取和保存数据的勇气。 这样做的原因是您的业务逻辑(应用程序中为数据操作提供繁重工作的部分)与特定类型的数据源无关。

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

如果在某些时候您决定转移到MongoDB,那么不要重写整个应用程序。 您可以只重写数据访问部分以从MongoDB获取数据。 由于业务逻辑并不关心如何获取数据,因此只有您这样做,它和Presenation层才能保持不变。

希望这可以帮助。

简单来说,持久层是一种SAVERETRIEVE应用程序使用的项目的方法。

一个简单的例子是你有一个代表一个人的类(姓名,年龄和性别)。 当您的应用程序运行时,它将保留在内存中。 但是,如果您再次关闭并打开您的应用程序,则表示您希望获得该信息。 好吧,你需要一些方法来保存那个人,然后再重新检索它。 这是持久层进入的地方,并将你的人写在某个“永久”的地方。

这可能是一个数据库,一个平面文件,注册表取决于生命周期和要求等。

在持久层中,您将执行CRUD(创建,读取,更新,删除)操作。 通常针对数据库,因此您将创建一个新人(Fred Bloggs)。 假设他们更改了他们的名字,系统的另一个用户可能会读取记录并更改为Fred Miggins并更新数据库。 然后该客户离开该国家,以便您删除它们。

如果您没有在某个地方保存数据,那么当您的应用再次打开时,它将不再存在。 您可以将其保存到数据库中(如SQL,Oracle,PostGRE等),或直接保存到磁盘(以二进制格式序列化或纯文本等)。

使用图层来做这件事是一种很好的做法。 它减少了耦合(即意大利面条代码),使维护更容易。

我建议你阅读一下Hibernate和它的.NET表兄,NHibernate。

持久性=读/写/删除磁盘或数据库中的记录。

层=绝缘等

持久层=通常意味着将读/写/删除逻辑与业务逻辑隔离。 理想情况下,通过在业务逻辑和持久性模块之间放置一些(或单个)交互点。

我认为我们已经做了一些事情(保存到磁盘,数据库等),这只是一个奇特的学术术语,他们只是要求我们:

  1. 确保持久性部分很好地组合在一起,
  2. 理想情况下,业务逻辑(即网关模式)之间的交互点很少(或者只有一个),
  3. 所以在未来我们可能会想要切换数据库类型或主机(即更小的范围 – 我们只需要在持久性部分周围进行操作以使其运行)。

干杯,