【发布时间】:2018-08-05 05:25:25
【问题描述】:
使用 DDD,如果我的域模型中有这样的东西:
public class OrderLineItem {
public decimal UnitPrice { get; set; }
public int Quantity { get; set; }
public decimal LineTotal { get { return UnitPrice * Quantity; } }
}
dto 可以将 LineTotal 的属性设为public decimal LineTotal { get; set; },这很好。
假设我现在创建了一个作为 SPA 的 UI。如果我想在将带有数量的行项目添加到订单时显示行总计,是否需要在我的 dto/ViewModel/客户端重新创建计算,或者我可以将域模型中的计算移动到服务(?) 并从我的 SPA 中调用它?这似乎更合乎逻辑,但我不确定如何/在哪里编码。如果有人能指出一个真正有帮助的例子。
【问题讨论】:
-
为什么要使用 DTO?域模型应该用于命令端。为什么不尝试在添加行时计算行总数然后存储总数?然后你可以用任何你喜欢的方式阅读它。我想说的是,您可以有两种模型,一种用于命令端(域模型),另一种用于读取端,即 CQRS。
-
不太清楚你的意思。您是说要向域和“UI”模型添加相同的计算?
标签: c# asp.net-mvc domain-driven-design single-page-application