Я использую .net core 2.1 с ядром entityframework.
У меня есть разные модели / сущности / типы, определенные в моем проекте.например, ученик, класс, учитель.
Я получаю данные таблиц для этих моделей для установки в моем кэше.
В данный момент я делаю это;
string[] tablesToBeCached = { "Student", "Class", "Teacher" };
foreach(var table in tablesToBeCached)
{
cache.Set(key, GetTableData(dbContext, table));
}
и функция GetTableData () определяется следующим образом:
public IEnumerable<object> GetTableData(DBContext dbContext, string tableName)
{
switch (tableName)
{
case "Student":
return dbContext.Student;
case "Class":
return dbContext.Class;
case "Teacher":
return dbContext.Teacher;
default:
return null;
}
}
Я хочу, чтобы этот код был умным и коротким.
Я пытался следовать, но не работал;(Ошибка 'x' является переменной, но используется как тип)
List<object> entities = new List<object> { typeof(Student), typeof(Class), typeof(Teacher) };
entities.ForEach(x => GetTableData(x, dbContext));
public IEnumerable<object> GetTableData(object x, DBContext dbContext)
{
return dbContext.Set<x>();
}
Может кто-нибудь помочь?Это вообще возможно в C #?