Entity Framework has a context dependent behaviour. If an entity belongs to an instance of a context, you cannot use it in another instance of context unless you detach the entity from the first context and attach to the second.
For your case, at the point where you save your list of entities to the session, you need to detach the list first, and at the button click event, you need to attach listofJobs
to the your current context.
I am not clear about your program flow but, if you can attach the list right after every listofjobs = (List<Metier>)Session["listofjobs"];
and detach right before every Session["listofjobs"] = listofjobs;
that might work.
You can see how to detach and attach objects in Entity framework you can use links below: http://msdn.microsoft.com/en-us/library/vstudio/bb896271(v=vs.100).aspx http://msdn.microsoft.com/en-us/library/vstudio/bb896245(v=vs.100).aspx http://msdn.microsoft.com/en-us/library/vstudio/bb738697(v=vs.100).aspx