Mehrere DbContexts in N-Tier-Anwendung

Ich bin momentan dabei, meine erste N-Tier, MVC-Anwendung und ich habe laufen in eine Straßensperre mit, wie zu verwalten mehrerer DbContexts mit meiner database first Ansatz.

Habe ich die folgenden Schichten

Presentation
Service (WCF)
Business
Data Access

Ich nicht wollen, dass eine entity framework Referenz in meinem service-layer, aber ich sehe nicht, wie eine Schnittstelle zu erstellen, oder etwas, das verwalten von zwei Kontexten. Ich habe es die Arbeit mit einem einzigen Kontext warpped in einem IDatabaseFactory aber ich kann nicht scheinen zu finden, ein Ansatz zur Verwaltung von zwei.

Unten ist mein UnitOfWork erstellt wird in meinem Dienst ctor, aber jede Weise, die ich es anschaue ich bin immer noch an der SiteModelContainer, wenn in der Tat habe ich einen anderen Zusammenhang.

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();
    }
}
  • "Ich habe es die Arbeit mit einem einzigen Kontext warpped in einem IDatabaseFactory" ich fühle deinen Schmerz; viel von meinem code scheint zu sein in einer Zeit und/oder Raum zu verziehen, zu.
InformationsquelleAutor MisterIsaak | 2011-07-11
Schreibe einen Kommentar