gpt4 book ai didi

nhibernate - 我在这个模型中打破了我的聚合边界吗?

转载 作者:行者123 更新时间:2023-12-04 06:51:18 25 4
gpt4 key购买 nike

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

model 1

如您所见,这是非常基本的,但我对此有些担忧。用户根实体和组织根实体通过两个一对多关系访问同一个 Organization_Users 子实体。这似乎不对,我认为我正在打破总体界限。这个模型对我来说很香,但我喜欢这个想法,因为我想要这样的代码:

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


var org = orgRepository.Load(1);
var list = org.Users; // All the users in an organization.

此外,组织实体将使用表中的额外数据,如标记和角色。这是一个糟糕的设计吗?如果你有任何想法,那就太好了。我仍在努力思考 DDD 的想法。谢谢

最佳答案

我曾多次使用类似于您的第一个模型的方法。这种方法的一个问题是您需要创建一个 组织用户 您域中的类来处理您域中的角色和标记字段。这会让你在你的代码中留下这样的东西。

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;

*如果您要经常遍历所有用户组织,您可能希望立即加载 组织机构实体以及 组织用户

使用您提交的第二个设计,您似乎可以向 添加用户。组织用户详细信息 无需将用户添加到 组织用户 .这似乎不是我想要从我的域中支持的东西。

关于nhibernate - 我在这个模型中打破了我的聚合边界吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com