1

Groups、Users、Channels というテーブルがあり、それぞれの間にリンクテーブルがある場合、Domain Driven Design と nHibernate でどのように整理しますか? グループには UserCollection と ChannelCollection、User には GroupCollection と ChannelCollection、Channel には GroupCollection と UserCollection がありますか?

また、グループをチャネルに追加する場合、そのチャネルをすべてのグループとともに保存する必要がありますか? さらに悪いことに、チャンネルにユーザーを追加する... チャンネルのすべてのユーザーを保存するには、最初にすべてのユーザーをロードし、次に新しいユーザーを追加してからチャンネルを保存する必要があります (OK、おそらく追加されたユーザーのみが保存されますが、それらをすべてロードする必要があります...)。それとも、リポジトリ AddUserToChannel(User user, Channel channel) または AddUserToChannel(User user, int channelId) にメソッドを作成しますか?

4

1 に答える 1

1

はいといいえ。はい: あなたのグループには Channels コレクションなどがあります。ただし、遅延読み込みが発生します。大量のレコードをロードする必要があるという懸念のほとんどは無効であると理解しています。つまり、次のように言います。

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

myChannel のグループのロードを強制しません。

于 2009-11-18T19:48:45.463 に答える