O usuário tem funções para sistemas - como (terço) relação ternária do modelo?

Eu tenho as seguintes entidades:

Privilege ( Id, Name )
Role ( Id, Name, ICollection<Privilege> )
System ( Id, Name )

User ( Id, Name, Pass, ? )

Agora quero modelar "Um usuário pode ter, para cada um dos zero ou mais sistemas, zero ou mais funções", por exemplo:

IDictionary<System, ICollection<Role>> SystemRoles { get; set; }

Isso é possível com o ASP.NET EntityFramework? Se sim, como? Quais atributos eu tenho que definir?

Tenho procurado por algum tempo agora, no entanto eu não acho nada útil na net para "código de estrutura de entidade primeira relação ternária"

Você pode me apontar para algum link legal onde isso é coberto em detalhes? Ou talvez me dê uma dica de como modelar / quais atributos eu posso colocar no dicionário?

Pergunta adicional: Se a solução IDictionary funcionar de alguma forma, há alguma mudança para obter o desempenho do proxy de controle de alterações? IDictionary não é um ICollection ...

questionAnswers(1)

yourAnswerToTheQuestion