Domain Layer是Mapped对象(DTO)的合适位置吗?

时间:2014-02-21 16:13:39

标签: design-patterns domain-driven-design distributed ddd-service

我的域层中有一些Mapped对象[Entities]需要我的Web服务使用,它将这些映射的对象暴露给外部世界。这些映射对象的正确位置在哪里?您将如何构建映射对象以及它们的正确位置在哪里?

我的项目是MVC5 .NET项目,它使用实体框架6并具有以下层:

UI +应用层 域层(Entities.MappedObjects是我现在放置映射对象的地方) 基础设施层(是否所有管道和访问数据库)

2 个答案:

答案 0 :(得分:1)

如果您遵循Code First方法,那么您的域模型对象(域模型中最重要的部分)与Entities.MappedObjects相同。

所以他们属于域层。

在Code First方法中,您的对象与持久性无关,而在Database First方法中,您会失去架构清晰模块化的灵活性,导致您的对象只是数据库表,并且持久性问题会泄漏到其他层。

答案 1 :(得分:0)

如果要将模型对象与Web服务公开的DTO分开,那么您的DTO(您的MappedObjects)应该驻留在服务层而不是域层中。

如果MappedObjects是您的实际域名对象,并且您不介意通过该服务将您的域名泄露给“外部世界”,那么他们现在可能会很好。