Я использую NHibernate, чтобы сохранить связь «многие ко многим» между пользователями и сетями. Я настроил класс User и Network следующим образом, выставляя каждую коллекцию как ReadOnlyCollections для предотвращения прямого доступа к базовым спискам. Я пытаюсь убедиться, что единственный способ добавить пользователя в сеть - это использовать функцию «JoinNetwork». Однако я не могу понять, как добавить пользователя в список пользователей сети, поскольку ее коллекция доступна только для чтения.
public class User
{
private ISet<Network> _Networks = new HashedSet<Network>();
public ReadOnlyCollection<Network> Networks
{
get
{
return new List<Network>(_Networks).AsReadOnly();
}
}
public void JoinNetwork(Network network)
{
_Networks.Add(network);
// How do I add the current user to the Network's list of users?
}
}
public class Network
{
private ISet<User> _Users = new HashedSet<User>();
public ReadOnlyCollection<User> Users
{
get
{
return new List<User>(_Users).AsReadOnly();
}
}
}