场景:
我正在研究一个有很多程序集的解决方案。主程序集引用具有大EF模型的DAL程序集。我正在处理一个DLL,其中包含它自己的更小的EF模型。这两种模型都将连接到同一个数据库。我正在处理的DLL将将数据返回到主程序集,但它不一定要从其模型返回实体。
问题:
是每个子组件包含自己的小模型更好,还是它们都应该共享相同的大模型?
讨论:
编辑:
发布于 2011-03-10 14:25:44
埃里克·埃文斯在他的书“领域驱动设计”中恰当地描述了这种情况。他的建议是围绕您的模型设置边界,并明确定义它们应用的范围。这被称为有界上下文和上下文地图。
听起来,您需要明确说明您是否想要一个公共域模型,或者每个DAL程序集是否应该绑定到它自己的模型。如果您想要一个中心域模型,您可能需要考虑在您的主程序集中定义这样的组件,然后让DAL程序集通过该模型与它通信。否则,您可以保留每个DAL程序集的单独模型,但可以定义显式有界上下文。
希望这能帮上忙!
发布于 2011-03-10 13:49:53
我使用了这两种类型,我相信子模型要好得多。特别是完整的模型将是大的和不同的子集相对独立。或在解决方案的概念上不同的部分局部使用。您获得了一组更干净的解决方案(规模更复杂),并且很少有影响几个概念上不同的系统区域的更改。
最大的问题是,如果系统的几个部分跨越了几个概念领域,因为在模型之间跳转并不简单(但可以桥接)。
BR
丹尼尔
发布于 2011-03-10 13:28:08
出于可维护性的原因,我会使用一个大型模型。在任何情况下,当您的模型由于模式中的数据库更改而发生更改时,您必须传播这些更改,因此如果您有多个模型.
https://stackoverflow.com/questions/5260200
复制相似问题