. net域模型,何时进行即时加载

本文关键字:加载 何时进 模型 net | 更新日期: 2023-09-27 17:50:35

我对整个。net场景相当陌生,我仍在努力弄清楚这一点。

似乎非常提倡的一件事是领域驱动设计模式。我渴望在。net的世界中有一个良好的开端,并且做得很好,我开始尝试将它应用到我的项目中。

据我所知,让域对象访问像存储库这样的持久化层函数是不好的做法,但后来我真的在努力解决在处理大量连接图时如何绕过急切加载的问题。它通常以领域模型中几乎没有逻辑而告终,并将所有逻辑移到一个服务层,该服务层进行计算并向模型对象填充数据或直接返回结果,例如price = productService.CalculatePriceFor(product, user);而不是price = product.Price(user),因为后者在第一次请求对象时如果不急于加载整个产品组树和折扣矩阵就无法完成。

这里什么是好的实践?实现产品的子类,其中获取用户价格的信息是在加载时计算的,当我不需要用户价格时,它的另一个子类?

. net域模型,何时进行即时加载

在适当的DDD中,您不会有任何紧密连接的图。Vaughn Vernon关于聚合设计的文章应该能帮助你理解这个想法。

http://dddcommunity.org/library/vernon_2011/

还要考虑product和user是否属于相同的有界上下文。我想说他们没有。在不同的上下文中,可能会以不同的方式实现类似的想法,例如,在定价上下文中,Client类可能是一个简单的聚合,提供一些回扣,但不提供有关运输、发票等信息。然而,在Shipping Context中会有一个类似的用户类,它在Shipping聚合中只是一个值对象(带地址)。用户类似乎是身份验证上下文的一部分。