我的域层中有一些映射对象[实体],需要由我的 Web 服务使用,它将这些映射对象暴露给外部世界。这些映射对象的正确位置在哪里?您将如何构建映射对象以及它们的正确位置在哪里?
我的项目是一个 MVC5 .NET 项目,它使用实体 framework6 并具有以下层:
UI+应用层域层(Entities.MappedObjects 是我现在放置映射对象的地方)基础设施层(是否所有管道和访问数据库)
我的域层中有一些映射对象[实体],需要由我的 Web 服务使用,它将这些映射对象暴露给外部世界。这些映射对象的正确位置在哪里?您将如何构建映射对象以及它们的正确位置在哪里?
我的项目是一个 MVC5 .NET 项目,它使用实体 framework6 并具有以下层:
UI+应用层域层(Entities.MappedObjects 是我现在放置映射对象的地方)基础设施层(是否所有管道和访问数据库)
如果您遵循 Code First 方法,那么您的域模型对象(这是域模型最重要的部分)与 Entities.MappedObjects 相同。
所以它们属于领域层。
在 Code First 方法中,您的对象与持久性无关,而在 Database First 方法中,您失去了架构干净模块化的灵活性,因为您的对象只是数据库表,而您的持久性问题会泄漏到其他层。
如果您将模型对象与您的 Web 服务公开的 DTO 分开,那么您的 DTO(您的MappedObjects
)应该驻留在服务层而不是域层。
如果MappedObjects
是您的实际域对象,并且您不介意通过服务将您的域泄漏到“外部世界”,那么它们可能在您现在拥有它们的地方就可以了。