Как вы справляетесь со ссылочными таблицами при использовании Domain Driven Design и nHibernate? - PullRequest
1 голос
/ 18 ноября 2009

Если у вас есть таблицы «Группы», «Пользователи», «Каналы» и между двумя таблицами ссылок, как вы организуете это в доменно-управляемом дизайне и nHibernate? Есть ли у группы UserCollection и ChannelCollection, пользователь - GroupCollection и ChannelCollection и канал - GroupCollection и UserCollection?

А если вы хотите добавить группу в канал, нужно ли сохранить канал со всеми его группами? Хуже того, добавление пользователя в канал ... сохранение всех пользователей канала требует сначала загрузить их всех, затем добавить нового пользователя и затем сохранить канал (хорошо, возможно, будет сохранен только добавленный пользователь, но вы нужно загрузить их всех ...). Или вы создадите метод в хранилище AddUserToChannel (пользователь, канал канала) или AddUserToChannel (пользователь, int channelId)?

1 Ответ

1 голос
/ 18 ноября 2009

Да и нет. Да, в вашей группе есть коллекция каналов и т. Д. Однако в игру вступает ленивая загрузка. Насколько я понимаю, большинство проблем, связанных с загрузкой большого количества записей, недействительны. то есть говоря что-то вроде:

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

Не заставляет группы myChannel загружаться.

...