Alors premier point d'interrogation tu creer une transaction, je pense qu'il faut la passer/utiliser dans les autres appels a la base de donnees:
_unitOfWork.PortefeuilleRepository.Insert(p);
De plus apparement tu fais de l'ioc, why not, mais dans ce cas, en profiter pour injecter aussi le scope/transaction. 
Pour repondre a la derniere question:
maintenant, si on veut faire appel à ce service au niveau du controlleur, on fait comment ? sachant que cette méthode requiert plusieurs POST ?
- Sois au fur et a mesure de la navigation tu creer un porteufeille temporaire ( en session de l'utilisateur par exemple)
- Sois tu creer le porteufeille en bdd avec un statut brouillon pa exemple.
- Sois tu te trimballes les informations du porteufeille de post en post via des champs caches
- via la premiere solution tu risques d'avoir une grosse session (si tu as de tres nombreux utilisateurs ca va piquer)
- via la seconde cela impacte la bdd donc risques potentiels d'impacts
- via la troisieme il ya deja pas mal de code a produire pour realiser la tache.
Perosnnellement j'opterai pour la premiere.
Partager