在非 Orchard 应用程序中,该模式是隔离项目中的数据模型(和数据访问代码),该项目被域/业务逻辑库、Web 应用程序项目、Web 服务项目等引用。
Orchard 的想法似乎是将数据模型限制在一个模块中,而无意与其他模块的数据模型有任何关系。
“限制”可能有点苛刻或不准确——也许“限制”是这里更好的措辞选择。给定两个模块,A 和 B,在处理模块 A 时,我们可以添加对模块 B 的引用,并使用存储库中的实体。但是当在模块 B 上工作时,需要从模块 A 访问数据,我们不能——至少不能优雅地在框架内。这里存在循环引用问题。
在这种情况下,我倾向于几种方法:
- 将两个模块合并为一个模块(并且必须处理潜在的繁重和风险数据迁移)
- 无需使用框架或存储库即可直接访问数据
- 将所有数据模型放在所有其他自定义模块引用的单个模块中(同样,更多的数据迁移风险)
- 在这里举手……
这是对 Orchard 软件设计者对模块和数据关系的意图的正确解释吗?