Множественные DbContexts в N-уровневом приложении

Я создаю свое первое N-уровневое приложение MVC, и я столкнулся с препятствием в том, как управлять несколькими DbContexts при первом подходе к базе данных.

I есть следующие уровни

Presentation
Service (WCF)
Business
Data Access

Мне не нужна ссылка на структуру сущности на моем уровне обслуживания, но я не вижу, как создать интерфейс или что-то еще для управления двумя контекстами. У меня он работает с одним контекстом, искаженным в IDatabaseFactory но я не могу найти подход к управлению двумя.

Ниже мой UnitOfWork , созданный в моем Service ctor, но во всех отношениях я все еще привязан к SiteModelContainer , хотя на самом деле у меня есть другой контекст.

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();
    }
}
7
задан Ahmed KRAIEM 2 September 2013 в 08:19
поделиться