假设您有一个分层项目,分为表示层、业务层和数据访问层。如果您使用 CQRS,您将直接从数据访问层到表示层进行查询并绕过业务层。
在这种情况下,如果您在表示层中使用 ViewModel,那么您的数据访问层将需要引用表示层以根据表示层中的 ViewModel 返回数据。那不是反模式吗?
此处存在类似的问题 - MVC 3 应用程序中的模型、视图模型、DTO
但是,如果您正在执行 CQRS,您将不会像答案中提到的那样在您的 ViewModel 和 Domain 对象之间进行映射,因为您正在绕过您的 Domain/Business 层那么您应该将 ViewModels 放在哪里?