[英]Entities in shared layer (cross cutting concern) in a layered application?
在分层应用程序中,在共享层中定义实体是一种好习惯吗? 我想我将在所有层中使用它们。 还是属于业务层?
MSDN的分层应用指南将业务实体置于业务层
可以这样吗?
或者必须是这样
该怎么做?为什么?
我通常按以下结构组织项目:
业务层
DAL 数据访问层
我会说这取决于这些实体是否包含业务逻辑。
来自分层应用指南:
业务实体还验证实体中包含的数据并封装业务逻辑以确保一致性并实现业务规则和行为。
相比之下,分层架构解决方案指南似乎依赖代码生成来创建实体,它们只是数据容器,其中几乎没有逻辑。
富域实体往往不在共享模块中,因为这意味着携带大量您不希望每个人都拥有的行为(想象一下能够直接在客户端操作业务逻辑......)贫血的相反,它们是轻量级的,可以愉快而方便地分布在任何地方。
我的方法有点不同。 在数据层中,我存储了所有实体,在共享层中,我有 DTO 对象(域传输对象),它们是实体的精确副本,但没有实体框架控制。 为了相互映射,我使用了流畅且易于使用的映射器( AutoMapper )。
我不明白为什么实体框架不支持接口,只使用实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.