1

如果你有组表,Groups,Users,Channels和每两个表之间的链接表,你如何在Domain Driven Design和nHibernate中进行组织?一个组有一个UserCollection和一个ChannelCollection,一个用户是一个GroupCollection和ChannelCollection,一个是一个ChannelCollection和UserCollection的通道?当你使用Domain Driven Design和nHibernate时,你如何处理链接表?

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

回答

1

是,否。是的:你的组有一个Channels集合等等。然而,延迟加载会起作用。我的理解是,大部分关于必须加载大量记录的问题都是无效的。即如下所示:

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

将不会强制myChannel的组加载。

+0

是的,我认为它只会强制一个负载,如果你使用一套。这是有道理的,因为它必须检查添加是否成功。 – dotjoe 2009-11-18 22:00:32

相关问题