1
我使用NHibernate來保持用戶和網絡之間的多對多關係。我已經設置了User和Network類,如下所示,將每個集合公開爲ReadOnlyCollections,以防止直接訪問基礎列表。我試圖確保用戶可以添加到網絡的唯一方式是使用其「JoinNetwork」功能。然而,我似乎無法弄清楚如何將用戶添加到網絡的用戶列表中,因爲它的集合是隻讀的。使用ReadOnlyCollection阻止我設置雙向多對多關係
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();
}
}
}
這就是我的想法。雖然現在仍然有人調用network.AddUser(用戶)而不是user.JoinNetwork(網絡)的風險。 – 2010-04-02 13:46:42