Múltiples DbContexts en la Aplicación N-Tier

Estoy creando mi primera aplicación MVC de N-Tier y me he encontrado con un obstáculo sobre cómo administrar múltiplesDbContexts con mi primer enfoque de base de datos.

Tengo las siguientes capas

Presentation
Service (WCF)
Business
Data Access

No quiero una referencia de marco de entidad en mi capa de servicio, pero no veo cómo crear una interfaz o algo para administrar dos contextos. Lo tengo trabajando con un contexto único deformado en una IDatabaseFactory pero parece que no puedo encontrar un enfoque para administrar dos.

Abajo está miUnitOfWork que se crea en mi ctor de servicios, pero cada vez que lo veo sigo vinculado a laSiteModelContainer, cuando de hecho tengo otro contexto.

public class UnitOfWork : IUnitOfWork
    {
        private SiteModelContainer _context;

        private readonly IDatabaseFactory _databaseFactory;

        protected SiteModelContainer SiteContext
        {
            get { return _context ?? (_context = _databaseFactory.Get()); }
        }

        public UnitOfWork(IDatabaseFactory factory)
        {
            _databaseFactory = factory;
            _context = _databaseFactory.Get();
        }
        //More code
    }



public class DatabaseFactory : Disposable, IDatabaseFactory
{
    private SiteModelContainer _dataContext;

    public SiteModelContainer Get()
    {
        return _dataContext ?? (_dataContext = new SiteModelContainer());
    }

    protected override void DisposeCore()
    {
        if (_dataContext != null)
            _dataContext.Dispose();
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta