Plusieurs DbContexts en N-l'Application de la couche

Je suis de créer mon premier N de la couche application MVC et j'ai couru dans un bloc de route avec la gestion de plusieurs DbContexts avec ma base de données à la première approche.

J'ai les couches suivantes

Presentation
Service (WCF)
Business
Data Access

Je ne veux pas d'une entité de référence de cadre dans mon service de couche, mais je ne vois pas comment créer une Interface ou quelque chose pour gérer les deux contextes. J'ai de travailler avec un seul contexte warpped dans un IDatabaseFactory mais je n'arrive pas à trouver une approche pour gérer les deux.

Ci-dessous est mon UnitOfWork qui est créé dans mon Service ctor mais de toute façon je la regarde je suis encore lié à la SiteModelContainer, alors qu'en fait, j'ai un autre contexte.

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();
    }
}
"J'ai de travailler avec un seul contexte warpped dans un IDatabaseFactory" je ressens votre douleur; une grande partie de mon code semble être dans un temps et/ou de l'espace warp, trop.

OriginalL'auteur MisterIsaak | 2011-07-11