La unidad de patrón de trabajo dentro de una aplicación mvc de asp.net

He estado mirando a este excelenteBlog Titulado "NHibernate y el patrón de unidad de trabajo" y tiene una pregunta sobre el mejor lugar para usar UnitOfWork.Start en un proyecto mvc de asp.net.

Mi SLN se divide en los siguientes proyectos:

 MVC project
 Repository
 NHibernateUnitOfWork

Tengo una interfaz: -

 public interface INameRepository
 ...
       IList<Name> GetByOrigin(int OriginId)
 ...

Tengo una implementación concreta.

     public class NameRepository : INameRepository
     ...
          public  IList<Name> GetByOrigin(int OriginId) {
                using (UnitOfWork.Start()) {
                     var query = session.Linq<...
                     return query;
                }
          }
     ...

Mi pregunta es ¿envuelvo todos mis métodos dentro de todos mis repositorios usando (UnitOfWork.Start ()) o hay un mejor enfoque?

Estoy usando nHibernate, asp.net mvc.

Respuestas a la pregunta(2)

Su respuesta a la pregunta