我正在尝试创建一个报告/分析web应用程序,它将使用MVC3,EF和DDD方法。我很难为现有数据库上的聚合表提供实体或对象类。例如,我将Orders和OrderLine作为聚合,将Customers作为实体。这三个对象可以使用DDD方法建模,但如果我想要有一个OrdersAggregate表,它将包含所有细节,如客户姓名,支付类型等。
我应该在这里创建一个包含customername、支付类型等属性的对象类,还是让EF创建他的sql查询并连接相关的表?我担心这里的性能,这将在云和等待大量事务的情况下受到谴责。
有什么建议吗?
发布于 2011-10-20 18:25:35
您可以在某些方面利用CQRS和here来获得读模型与写模型分离的好处。
不需要实现整个架构,只需将读写模型和服务分离,这使得读模型发送定制的DTO扁平化以用于评估和分析目的,而另一方面在写模型中发送强大的域模型用于业务逻辑处理。
检查this和this示例
发布于 2011-10-21 16:39:06
我的经验是,DDD不适合做报告,统计等。一些像Jimmy Nilsson这样的专家告诉你用常规的数据访问绕过你的域。如果您只是想一想,在表示数据时没有太多的域逻辑。这似乎只是为了视图数据而使用ORM、存储库、聚合器等进行分层和DDD风格的开销。
发布于 2011-10-20 18:19:10
我的建议是为此创建一个DTO类,并使用从SQL命令(手工)返回的dataset填充您的连接和关系。
这只是一个建议,因为我在一个类似的问题中使用了这种方法。
https://stackoverflow.com/questions/7831763
复制相似问题