public interface IDataContextFactory
private readonly IDataContextFactory repositoryFactory;
public UnitOfWork(IDataContextFactory repositoryFactory)
this.repositoryFactory = repositoryFactory;
return this.repositoryFactory.GetName();
public class DataContextFactory : IDataContextFactory
public class TestDataContextFactory : IDataContextFactory
public object CreatePayrollDataContext()
public static void Main()
var dcFactory = new TestDataContextFactory();
var unitOfWork = new UnitOfWork(dcFactory);
Console.WriteLine(unitOfWork.GetName());