Lao*_*jin 9 domain-driven-design aggregateroot bounded-contexts
我已经设置了一个用ORM填充的域项目.域包含不同的聚合,每个聚合都有自己的根对象.我的问题是如何处理跨越聚合边界的属性?
示例:
上下文A =用户
上下文B =游戏
在Users上下文中有一个对象UserOwnedGames.此对象具有一个属性User,该属性是对同一Users上下文中的对象的引用.该对象还具有一个属性,Game该属性显然不在用户中,而是在Games上下文中.
怎么会(或应该?)这种关系是什么样的?它在数据库中很清楚(即2个外键),但代码应该是什么样的?
Mat*_*vey 15
听起来你的User上下文也需要一个Game实体.但请注意,这不一定Game是Game上下文根的同一实体.这两个有界的背景可能对它是什么Game以及它具有什么属性有不同的想法.只有标识将两个Game对象绑定在一起.
User Context
{
Aggregate Root User
{
Identity;
Name;
OwnedGames : List of Game value entities
}
Value Entity Game
{
Identity;
Name;
}
}
Game Context
{
Aggregate Root Game
{
Identity;
Name;
Owner : User value entity
HighScore : int
TimesPlayed : int
... A whole bunch of other properties which are not relevant in the User context
}
Value Entity User
{
Identity;
Name;
// No OwnedGames property, in this context we don't care about what other games the user owns.
}
}
Run Code Online (Sandbox Code Playgroud)