所以我一直在使用DenormalizedReference,它有 刚刚发现,在很多地方,这使DDD变得相当困难。
所以,比如说,我有一个有子集合的对象:
List<DenormalizedReference<SomeType>>
在父实例化时创建此子集合
接受List<SomeOtherType>
现在 - 在ctor中我想从SomeOtherType创建这个列表 传入的集合 - 这意味着我需要创建一个新的 SomeOtherType的SomeType。
没有将DocumentSession传递到我的域中 - 我不是 要去做 - 这不会工作,因为父母AR被保存了我们 丢失除Id和Name
之外的每个子对象的属性其他人如何处理这个?
答案 0 :(得分:4)
你做不到。 或者说,你不应该这样做。
有几种方法可以解决这个问题,通常使用静态网关来获取会话,但问题是这种方法会创建一个延迟加载的集合,并带来所有问题。
RavenDB专门用于避免此类问题。并且您可以包含项目以避免返回到服务器,但您不应该尝试透明地在ID和类型之间移动。