Я реализовал шаблон EntityFramework вместе с репозиторием и модулем работы. Реализация похожа на Code Project Repository Example, однако мне требуется усовершенствование для Unit of Work.Общий блок работы
Единица работы
public class GenericUnitOfWork : IDisposable
{
// Initialization code
public Dictionary<Type, object> repositories = new Dictionary<Type, object>();
public IRepository<T> Repository<T>() where T : class
{
if (repositories.Keys.Contains(typeof(T)) == true)
{
return repositories[typeof(T)] as IRepository<T>
}
IRepository<T> repo = new Repository<T>(entities);
repositories.Add(typeof(T), repo);
return repo;
}
// other methods
}
выше UOW тихо обобщенная и он нацелен на родителю Repository класса всегда. У меня есть другой объект, например студент, у которого есть собственный репозиторий, расширяющий класс репозитория. У конкретного студенческого репозитория есть метод «GetStudentMarks()». Теперь я не могу использовать общий класс Unit Of Work, поскольку он всегда указывает на родительский репозиторий.
Как реализовать общую единицу работы для обработки таких ситуаций? Заранее спасибо.
Проблема заключается в том, что е Разработчики склонны создавать классы по своему желанию. Поэтому я хотел остановить это, поэтому мне потребовался более общий UoW. –