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

时间:2013-11-14 17:32:23

标签: .net entity-framework c#-4.0 code-first n-tier-architecture

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

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

在视频中,开发人员将实体对象带到业务层,因为根据他的说法,我们使用实体框架默认生成的实体对象。

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

如果您认为数据层依赖于业务层

,这似乎很奇怪

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

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

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

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

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

抱歉我的英文,谷歌翻译。

非常感谢你!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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