UnitOfWork for different DbContext

本文关键字:DbContext different for UnitOfWork | 更新日期: 2023-09-27 17:59:50

我有如下

 //Following is the Constructor
    public UnitOfWork(IEmployeeContext context)
    {
        this._context = context;
    }
    #endregion
    public void Dispose()
    {
        this._context.Dispose();
    }
    public void Commit()
    {
        this._context.SaveChanges();
    }
    public IEmployeeRepository EmployeeRepository
    {
        {
        return _employeeRepository??
            (_employeeRepository= new EmployeeRepository(_context));
    }
    }

现在的问题是,我有另一个不是基于IEemployeeContext的存储库。让我们调用该上下文IOfficeContext,这样它就会像一样

     get
        {
            return _officeRepository??
                (_officeRepository= new OfficeRepository(_context));
        }

传递给OfficeRepository的上下文是IOfficeContext。我应该给他们两个单独的单位吗?或者可以在这里做一些其他聪明的事情?

UnitOfWork for different DbContext

您可以有一个通用接口:

public interface IContext
{
    void Dispose();
    void SaveChanges();
}

并且让IEmployeeContextIOfficeContext都从中继承。那么UnitOfWork只能知道IContext,并且能够处理这两者。