Database 使用域驱动设计和nHibernate时,如何处理链接表?

Database 使用域驱动设计和nHibernate时,如何处理链接表?,database,nhibernate,hibernate,domain-driven-design,linktable,Database,Nhibernate,Hibernate,Domain Driven Design,Linktable,如果您有表组、用户、频道,并且在每两个表之间都有一个链接表,那么在域驱动设计和nHibernate中如何组织它们?组是否有UserCollection和ChannelCollection,用户是否有GroupCollection和ChannelCollection,通道是否有GroupCollection和UserCollection 如果要向频道添加组,是否需要将频道及其所有组一起保存?更糟糕的是,将用户添加到频道。。。保存频道的所有用户需要先加载所有用户,然后添加新用户,然后保存频道(好的,

如果您有表组、用户、频道,并且在每两个表之间都有一个链接表,那么在域驱动设计和nHibernate中如何组织它们?组是否有UserCollection和ChannelCollection,用户是否有GroupCollection和ChannelCollection,通道是否有GroupCollection和UserCollection


如果要向频道添加组,是否需要将频道及其所有组一起保存?更糟糕的是,将用户添加到频道。。。保存频道的所有用户需要先加载所有用户,然后添加新用户,然后保存频道(好的,可能只保存添加的用户,但您确实需要加载所有用户…)。或者您是否会在存储库AddUserToChannel(用户用户,频道频道)或AddUserToChannel(用户用户,int channelId)中创建一个方法?

是和否。是:您的组有一个频道集合等。但是延迟加载会起作用。我的理解是,您对必须加载大量记录的大多数担心都是无效的。比如说:

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

不会强制加载myChannel的组

是和否。是:您的团队有一个频道集合等。不过延迟加载会起作用。我的理解是,您对必须加载大量记录的大多数担心都是无效的。比如说:

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

不会强制加载myChannel的组

是的,我想如果你用的是电视机,它只会强制加载。这是有意义的,因为它必须检查添加是否成功。是的,我认为只有在使用集合时才会强制加载。这很有意义,因为它必须检查添加是否成功。