public static GebruikerDepartement koppelGebruikerAanDepartement(Gebruiker gebruiker, Departement departement)
 {
     GebruikerDepartement gebruikerDepartement = new GebruikerDepartement(gebruiker, departement);
     gebruiker.GebruikerDepartementen.Add(gebruikerDepartement);
     departement.GebruikerDepartementen.Add(gebruikerDepartement);
     return gebruikerDepartement;
 }        
 private GebruikerKlant(GebruikerDepartement gebruikerDepartement, DepartementKlant departementKlant) : this()
 {
     GebruikerDepartement = gebruikerDepartement;
     GebruikerDepartementId = gebruikerDepartement.Id;
     DepartementKlant = departementKlant;
     DepartementKlantId = departementKlant.Id;
 }
 public void InsertOrUpdate(GebruikerDepartement gebruikerdepartement)
 {
     if (gebruikerdepartement.Id == default(int)) {
         // New entity
         context.GebruikerDepartements.Add(gebruikerdepartement);
     } else {
         // Existing entity
         context.Entry(gebruikerdepartement).State = EntityState.Modified;
     }
 }
        public static GebruikerKlant koppelGebruikerAanKlant(GebruikerDepartement gebruikerDepartement, DepartementKlant departementKlant)
        {
            Departement klantDep = departementKlant.Departement;
            Departement gebruikerDep = gebruikerDepartement.Departement;            

            if (!klantDep.Equals(gebruikerDep))
            {
                throw new Exception("De gebruiker kan niet gekoppeld worden aan de klant. De gebruiker behoort tot geen enkel departement waar de klant aan gekoppeld is");
            }

            GebruikerKlant koppeling = new GebruikerKlant(gebruikerDepartement, departementKlant);
            gebruikerDepartement.GebruikerKlanten.Add(koppeling);
            departementKlant.GebruikerKlanten.Add(koppeling);

            return koppeling;
        }