我需要“denormalize”类在连接类中有另一个字典,其键是连接ID,值是名称。我需要保持这两个词典同步。
类
public class ConnectionMapping<T>
{
private readonly Dictionary<T, HashSet<string>> _connections =
new Dictionary<T, HashSet<string>>();
public void Remove(T key, string connectionId)
{
lock (_connections)
{
HashSet<string> connections;
if (!_connections.TryGetValue(key, out connections))
{
return;
}
lock (connections)
{
connections.Remove(connectionId);
if (connections.Count == 0)
_connections.Remove(key);
}
}
}
}
更新
public class myHub : Hub
{
private readonly static ConnectionMapping<string> _connections =
new ConnectionMapping<string>();
public override Task OnDisconnected()
{
string name = userName;
_connections.Remove(name, Context.ConnectionId);
//_connections.Remove(Context.ConnectionId); <-- I need
}
}
如何“反规范化”?我需要使用_connections.Remove(connectionId)