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