Cela est dû au fait que vous avez un cycle formé par les classes qui se référencent les unes les autres, il est clair que le conducteur n'est pas équipé pour gérer cela et je ne suis pas convaincu qu'il le devrait.
Vous devez décider comment vous voulez que ces données soient modélisées dans la base de données.
Si vous avez deux collections, une d'entreprises et une d'employés, alors au niveau des données, vous ne devriez inclure que les identifiants pour les références.
Si vous n'avez qu'une seule collection d'entreprises, il vous suffit de modifier la classe d'employés pour faire référence à l'entreprise avec un identifiant au lieu d'une référence d'objet.
Cependant, cela ne doit se produire que dans la base de données, vous pouvez étendre votre modèle dans votre code c # pour ajouter automatiquement la référence d'objet ou le charger paresseux, etc. (en évitant de sélectionner les problèmes N + 1 comme vous le faites) en fonction de ce qui convient à la situation.