0

我有一个关于 n 层项目的问题

我正在观看一个视频课程,该课程教您如何根据 SOA 原则创建应用程序。首先,视频类是旧的,或者没有代码优先的方法。

在视频中,开发者将实体对象带到了业务层,因为在他看来,我们使用实体框架默认生成的实体对象不好。

有了这个,在数据层中创建的存储库,使用实体对象层模型而不是使用来自数据层的实体对象

如果您认为数据层依赖于业务层,这似乎很奇怪。

这让我很困惑,因为我使用的是代码优先方法,并且我在数据层中创建了对象实体,用于映射它们和上下文类的实体框架。

我想象了以下场景:表示层 MVC 项目在业务层中使用我的类。

使用我的存储库和工作单元的业务层类

数据 层 实体 对象 , 存储库 , 工作 单元 , 上下文 类

那么为什么要在业务层创建实体对象呢??

对不起我的英语,它的谷歌翻译。

太感谢了!!

4

2 回答 2

0

在 n 层方案中,您将实体与数据访问层 (DAL) 分离到一个额外的程序集中,您可以在客户端和服务器之间共享该程序集(共享程序集)。DAL 仅在服务器上使用,而实体在客户端和服务器上使用。

实体可以是纯粹的 DTO,以便在不同层之间携带数据,或者它们可以包含业务逻辑(数据验证、计算属性、业务操作等),这将使它们成为业务组件。因此,您可以看到业务层跨越两层(客户端和服务器),您的实体是其中的一部分。

于 2013-11-20T08:57:17.743 回答
0

您的实体对象绝对应该是数据层的一部分,因为它们决定了数据库结构(使用代码优先方法时)。根据您的描述,该视频似乎指的是某种DTO(数据传输对象)或可能类似于ViewModel.

于 2013-11-14T18:25:02.293 回答