在使用Domain Driven Design和nHibernate时,如何处理链接表?

时间:2009-11-18 17:02:12

标签: database nhibernate hibernate domain-driven-design linktable

如果您有表格组,用户,频道以及每两个表之间的链接表,那么如何在域驱动设计和nHibernate中组织它?组是否具有UserCollection和ChannelCollection,用户是GroupCollection和ChannelCollection以及Channel是GroupCollection和UserCollection?

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

1 个答案:

答案 0 :(得分:1)

是和否。是的:您的小组有一个频道收集等。但延迟加载发挥作用。我的理解是,您必须加载大量记录的大多数问题都是无效的。即说出类似的话:

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

不会强制加载myChannel的组。