我有一个关于n层项目的问题
我正在观看视频课程,教您如何根据SOA原则创建应用程序。 首先,视频类是旧的,或者没有代码第一种方法。
在视频中,开发人员将实体对象带到业务层,因为根据他的说法,我们使用实体框架默认生成的实体对象。
这样,在数据层中创建的存储库,使用实体对象层模型而不是使用数据层中的实体对象
如果您认为数据层依赖于业务层
,这似乎很奇怪这让我很困惑,因为我正在使用代码第一种方法,我在数据层中为实体框架创建了对象实体,用于映射它们和上下文类。
我想象了以下场景: 表示层 MVC项目在业务层中使用我的类。
业务层 使用我的存储库和工作单元的类
数据层 实体对象,存储库,工作单元,上下文类
那么为什么要在业务层中创建实体对象呢? ?
抱歉我的英文,谷歌翻译。
非常感谢你!
答案 0 :(得分:0)
您的实体对象肯定应该是数据层的一部分,因为它们决定了数据库结构(当使用代码优先方法时)。根据您的描述,似乎该视频指的是某种DTO
(数据传输对象)或可能是ViewModel
的某些行。
答案 1 :(得分:0)
在n层方案中,您将实体与数据访问层(DAL)分离为一个额外的程序集,您可以在客户端和服务器之间共享(共享程序集)。 DAL仅在服务器上使用,而实体在客户端和服务器上使用。
实体可以是纯DTO,以便在不同层之间传输数据,或者它们可以包含业务逻辑(数据验证,计算属性,业务操作等),这将使它们成为业务组件。因此,您可以看到业务层跨越两层(客户端和服务器),您的实体就是其中的一部分。