域层是否适合映射对象 (DTO) 的位置



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

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

UI+应用层域层(实体.映射对象是我现在放置映射对象的地方)基础结构层(执行所有管道和对数据库的访问)

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

所以它们属于域层。

在代码优先方法中,您的对象

与持久性无关,而在数据库优先方法中,您失去了架构干净模块化的灵活性,因为您的对象只是数据库表,并且您的持久性问题泄漏到其他层。

如果要将

模型对象与 Web 服务公开的 DTO 分开,则 DTO(您的MappedObjects)应驻留在服务层而不是域层。

如果MappedObjects是您的实际域对象,并且您不介意通过服务将您的域泄露给"外部世界",那么它们在您现在拥有它们的地方可能很好。

最新更新