Вот пример, который я использовал в прошлом (который также отделяет ваш код от любой прямой зависимости от Entity Framework).

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

У меня есть следующие слои

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();
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос