1

如果您有 Groups、Users、Channels 表以及每两个表之间的链接表,那么您如何在 Domain Driven Design 和 nHibernate 中组织它们?Group 有 UserCollection 和 ChannelCollection,User 有 GroupCollection 和 ChannelCollection,Channel 有 GroupCollection 和 UserCollection?

如果您想将组添加到频道,您是否需要保存频道及其所有组?更糟糕的是,将用户添加到频道...保存频道的所有用户需要先加载所有用户,然后添加新用户,然后保存频道(好吧,可能只会保存添加的用户,但你确实需要将它们全部加载...)。或者您将在存储库 AddUserToChannel(User user, Channel channel) 或 AddUserToChannel(User user, int channelId) 中创建一个方法?

4

1 回答 1

1

是和不是。是的:您的 Group 有一个 Channels 集合等。但是延迟加载开始发挥作用。我的理解是,您对必须加载大量记录的大多数担忧都是无效的。即这样说:

myGroup.Channels.Add(myChannel);
myChannel.Groups.Add(myGroup);

不会强制加载 myChannel 的组。

于 2009-11-18T19:48:45.463 回答