Rebonjour à tous ,

J'ai de nouveau un problème. Pour commencer, voici mon code :

Study Controller (Couche GUI) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
ViewResult Index(string search)
        {
            var studies = StudyManager.SelectAll();
            return View(studies);
        }
Study Manager (Couche BLL) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public static List<Study> SelectAll()
        {
            return StudyRep.Select();
        }
Study Repository (Couche DAL) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public static ICollection<Study> Select()
        {
            using (PrismaDAL dal = new PrismaDAL())
            {
                return dal.Studies.ToList();
            }
        }
On voit que le Repository des Studies se crée un contexte pour charger la liste complète des studies.
Le souci est que dans ma vue, j'aimerai accéder à un sous objet (une Phase) de chaque étude de la liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@if (Model.Phase != null)
{
    @Html.ActionLink(Model.Phase.Label, "Details/" + Model.Phase.Id.ToString(), "Codelist")
}
Au moment ou ma vue est exécutée, le contexte est déjà détruit et le lazy-loading est donc impossible.

Ma question :
Comment faire pour que mon sous-objet soit accessible ? Comment avoir un contexte qui "vit" assez longtemps pour permettre le lazy-loading dans la vue.

Je me suis renseigné avant de poster évidemment, voici les solutions possibles :
- Créer le context dans le controller, mais la division en couche n'est pas respectée.
- Une autre option (qui est plus conseillée) est d'avoir un contexte par requete. En chipotant dans le global.asax, ca semble possible, mais je n'y arrive pas... Comment faire ?

A+ et merci bcp