我记得读过那个将低级调用抽象为数据无关框架(例如,ExecuteCommand方法等),而另一个通常包含业务特定方法(例如,UpdateCustomer).
它是否正确?哪个是哪个?
对我而言,这是一个关于如何处理项目设计的个人设计决策.有时数据访问和数据服务是同一个.对于.NET和LINQ就是这种情况.
对我来说,数据服务层实际上是对数据库的调用.数据访问层接收对象并创建它们或为数据服务层修改它们以调用数据库.
在我的设计中,业务逻辑层根据业务规则操作对象,然后将它们传递给数据访问层,数据访问层将格式化为数据库或数据库中的对象,数据服务层处理实际的数据库调用.
我认为一般来说这两个术语是可以互换的,但根据开发环境的上下文可能有更具体的含义.
数据访问层位于数据和应用程序之间的边界上."数据"只是应用程序使用的各种数据源.这可能意味着必须在每个应用程序中进行大量编码,以便从多个源中将数据拉到一起.创建所需数据视图的代码在某些应用程序中将是多余的.
随着数据源数量的增长和变得越来越复杂,有必要隔离数据访问的各种任务,以解决数据访问,转换和集成的细节问题.通过精心设计的数据服务,Business Services将能够以更高的抽象级别与数据进行交互.处理数据访问,集成,语义解析,转换和重构以处理应用程序所需的数据视图和结构的数据逻辑最好封装在数据服务层中.
可以将数据服务层进一步分解为其组成部分(即数据访问,转换和集成).在这种情况下,您可能拥有一个仅涉及检索数据的"数据访问层",以及一个通过数据访问层检索其数据的"数据服务层",并将检索到的数据组合并转换为所需的各种对象.业务服务层.