Скажем, у меня есть 3 таблицы в моей базе данных: люди, задачи и проекты
Скажем, у меня есть 3 класса для репозитория: PeopleRepository, TaskRepository и ProjectRepository.
Теперь я хочу один метод, который будет работать с любым из этих классов.
Очевидно, я мог бы просто написать множество кода для каждой таблицы, но я бы предпочел свести код к минимуму. У меня уже есть отражение, работающее нормально для различных имен столбцов, которые могут быть переданы методу, но я не могу заставить такой код работать.
switch (tableName)
{
case "people":
var repository = new PeopleRepository();
break;
case "tasks":
var repository = new TaskRepository();
break;
case "projects":
var repository = new ProjectRepository();
break;
}
//Modify respective database table
repository.getItem(id); //etc
repository.Save(); //etc
Я пробовал еще несколько подобных вещей, но ни одна из них, похоже, не работала. Изменение области, в которой определяется переменная и т. Д.
Я чувствую, что у c # должно быть что-то хорошее, чтобы справиться с этим, это так? Или мне нужно писать один и тот же код в каждом операторе switch?