我打破了我的总界限吗?

Cal*_*bHC 8 nhibernate domain-driven-design model aggregate

我正在使用NHibernate建模一个非常基本的ASP.NET MVC应用程序,我似乎陷入了我的设计.这是我模型的草图:

模型1 http://i29.tinypic.com/309614n.jpg

正如你所看到的,这是非常基本的,但我有一些担忧.用户根实体和组织根实体通过两个一对多关系访问同一Organization_Users实体子实体.这似乎不对,我认为我打破了聚合边界.这个模型对我来说很有趣,但我喜欢这个主意,因为我希望有这样的代码:

var user = userRepository.Load(1);
var list = user.Organizations; // All the organizations the user is a part of.
Run Code Online (Sandbox Code Playgroud)

var org = orgRepository.Load(1);
var list = org.Users; // All the users in an organization.
Run Code Online (Sandbox Code Playgroud)

表格和角色中的额外数据也将由组织实体使用.这是一个糟糕的设计吗?如果你有任何想法会很棒.我还在试着想一想DDD的想法.谢谢

And*_*son 2

我曾多次使用与您的第一个模型类似的方法。这种方法的一个问题是,您需要在域中创建一个OganizationUser类来处理域中的角色标记字段。这会在您的代码中留下类似的内容。

var user = userRepository.Load(1);
var list = user.OrganizationUsers; // All the organizations the user is a part of including their role and flagged values.

var organization = list[0].Organization; 
Run Code Online (Sandbox Code Playgroud)

*如果您要经常迭代所有用户组织,您可能希望立即加载Organization实体以及OrganzitionUser

使用您提交的第二个设计,您似乎可以将用户添加到 OrgUserDetails 中,无需将用户添加到OrganizationUser中。这似乎不是我想要从我的域中支持的事情。